我在Git上有一个使用NuGet库的C#项目。一切正常,但是当我使用新的新机器并在Visual Studio中打开解决方案时,由于参考文献损坏而无法编译。如果我点击项目下的引用,我可以看到带有黄色感叹号的经典警告标志。
Nuget恢复不会做任何事情(我仍然没有发现任何使用此功能......),文件repositories.config很好。如果我右键单击解决方案,然后“管理NuGet包以获得解决方案”#39;没有显示已安装的软件包。
直到今天我都是这样解决的:运行
Install-Package package_name
它说:
'package_name' already installed.
My_project already has a reference to 'package_name'.
...之后,它显示了Manager上已经分配给正确项目的包。
在任何地方的代码中没有改变,我可以看到,因为Git没有差异。
我必须在新机器上只执行一次,但它真的很烦人。有什么想法吗?
NuGet版本:2.8.60318.667
更新 27/07
我在另一台PC上尝试从头开始,使用Windows 10,一切正常......相同版本的Visual Studio,NuGet等......我感到困惑
答案 0 :(得分:7)
这可能是因为.csproj中.dll的路径不正确。包还原将包下载到本地目录。它不会更改.csproj中程序集的引用路径,这意味着项目仍将尝试在本地目录中查找dll。黄色标记表示项目无法找到装配体。
卸载项目,右键单击项目并选择"编辑.csproj",并验证缺少dll的路径。例如 - 如果您有NUnit,
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>
验证dll是否存在于&#34; \ packages \ NUnit.3.6.1 \ lib \ net45&#34; 。目录
答案 1 :(得分:2)
从头脑中我可以想到没有下载软件包的几个原因,理想情况下你需要分享一些细节。
首先,install-package命令无法正常工作。您的软件包已经安装了VS无法下载它们,因此您收到该错误是有道理的。
您可以打开软件包管理器控制台并输入:
Update-Package -reinstall
或
Update-Package -reinstall -Project YourProjectName
仅供参考,来自Microsoft的全面文档 - https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore - 关于恢复nuget包的多种方法
答案 2 :(得分:1)
我已经解决了这个问题。请按照以下步骤操作
答案 3 :(得分:1)
我今天遇到了这个问题,升级到最新版本的VS 2017(15.8.7)完全没有帮助。
检查您的packages.config文件,看您的packages标签是否像这样:
<packages xmlns="urn:packages">
如果确实如此,请删除xmlns属性,使其仅为:
<packages>
为我解决了这个问题!
答案 4 :(得分:0)
尝试从nuget缓存文件夹下面删除软件包,以强制NUGET从源文件下载
C:\ Users \ <<您的用户名>> \。nuget \ packages