我正在尝试评估用于显示PDF文件的软件SDK。它带有一些示例项目,但是在构建C ++项目时遇到了问题。我很确定这是我本地环境的问题,但我不知道如何解决它:
这些项目是作为Visual Studio解决方案提供的,将在Visual Studio 2017中使用。第一次打开该项目时,我被告知要安装缺少的功能(VS17是以前没有任何工作负载的普通安装):
安装完该文件并与平台工具集和一般平台目标设置打交道之后,我终于可以构建C ++库部分,该部分创建一个.dll
文件供其他2个C ++项目使用。 (我还可以确认这正常工作,因为还包括的C#项目使用该库就可以了。)
但是对于剩下的2个C ++项目,我在构建时遇到此错误:
The package System.Net.Http with version 4.1.1 could not be found in C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\. Run a NuGet package restore to download the package.
FunctionDemo
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets
377
不幸的是,我不知道“使用NuGet软件包还原下载它们”是什么。意味着在这种情况下-在Visual Studio中使用Manage NuGet Packages...
时,解决方案和所有项目都没有列出。所以我什至不知道这种依赖来自哪里。 (也许我已经安装了常规SDK的那些部分?)
双击错误消息将打开C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets
,并显示以下内容:
<ResolveNuGetPackageAssets Condition="Exists('$(FrameworkInjectionLockFile)')"
NuGetPackagesDirectory="$(FrameworkInjectionPackagesDirectory)"
RuntimeIdentifier="$(NuGetRuntimeIdentifier)"
TargetMonikers="$(NuGetTargetMonikerToInject)"
ProjectLockFile="$(FrameworkInjectionLockFile)">
但是我想这很标准。这能告诉我错误的来源吗?
在文件系统C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\System.Net.Http\4.1.1
上确实不存在。尝试手动填充它的任何尝试(将nuget软件包手动下载到项目中,然后使用我可以在线找到的任何解决方案或命令运行,将结果复制到此处)。
如果发现C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
是包源Microsoft Visual Studio Offline Packages
,我可以在Visual Studio 2017中通过选项-> NuGet包管理器->包源查看它,但在那里禁用则没有任何改变关于错误消息。
我找错地方了吗?
这真的是我的本地问题还是项目问题?
我该如何解决这个问题?
答案 0 :(得分:0)
我通过从另一位开发人员那里获得C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\System.Net.Http\4.1.1
文件夹来“修复”此问题。然后错误消息切换到其他软件包,所以最后他将完整的C:\Program Files (x86)\Microsoft SDKs\NuGetPackages
发送给我,然后我复制了文件夹,直到最终建立为止。
仍然不知道是什么原因造成的,一定是缺少Visual Studio认为已安装但实际上不是的有效负载或SDK:/
让问题悬而未决,希望有人能知道真实修复程序。
答案 1 :(得分:0)
从Visual Studio 2017升级到2019后,这发生在我身上。虽然文件不相同,但我的错误是:
错误APPX0702:有效负载文件'C:\ Program Files(x86)\ Microsoft SDK \ NuGetPackages \ System.Private.ServiceModel \ 4.1.3 \ runtimes \ win7 \ lib \ netcore50 \ System.Private.ServiceModel.dll' 不存在。
无论出于何种原因,升级后,VS 2017和VS 2019都在C:\ Program Files(x86)\ Microsoft SDKs \ NuGetPackages ...中寻找它,但是我发现它实际上存在于类似命名的文件夹C中:\ Program Files(x86)\ Microsoft SDKs \ UWPNuGetPackages ...代替。我认为在VS 2019安装期间是否已创建此目录?
我手动将文件复制到了要查找的位置,然后构建最终成功了。潜在的问题尚未解决,但也许比我聪明的人可以解释为什么这首先发生。