首页 > 解决方案 > “在 C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 中找不到版本 4.1.1 的包 System.Net.Http。”

问题描述

我正在尝试评估用于显示 PDF 文件的软件 SDK。它附带了一些示例项目,但我在构建 C++ 项目时遇到了问题。我很确定这是我本地环境的问题,但我不知道如何解决它:

这些项目作为 Visual Studio 解决方案提供,将在 Visual Studio 2017 中使用。第一次打开它时,我被告知要安装缺少的功能(VS17 是一个简单的安装,之前没有工作负载):

安装通用 Windows 平台开发和 C++ 通用 Windows 平台工具

在安装了它,并使用了平台工具集和通用平台目标设置之后,我终于可以构建 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 包还原下载它们”是什么。Manage NuGet Packages...意味着在这种情况下 -在 Visual Studio 中使用时,解决方案和所有项目都没有列出任何内容。所以我什至不知道这种依赖来自哪里。(可能是我安装的通用 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 包管理器 -> 包源查看的包源,但禁用它并没有改变有关错误消息的任何内容。


我找错地方了吗?
这真的是我的本地问题还是项目问题?
我该如何解决这个问题?

标签: c++visual-studio-2017nuget

解决方案


C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\System.Net.Http\4.1.1我通过从另一个开发人员那里获取文件夹来“修复”这个问题。然后错误消息切换到其他包,所以最后他给我发了他的完整的C:\Program Files (x86)\Microsoft SDKs\NuGetPackages,我复制了文件夹,直到它最终建成。

仍然不知道是什么原因造成的,一定是缺少 Visual Studio 认为已安装但实际上没有安装的有效负载或 SDK:/

尽管希望有人知道真正的解决方法,但仍保留未回答的问题。


推荐阅读