NuGet正在还原软件包但缺少DLL文件

3
我在我的电脑上成功运行了一个Visual Studio解决方案,但当我提交更改到BitBucket并且另一个用户从Visual Studio或TeamCity中拉取项目并构建时,我们收到了诸如以下错误的错误信息:
error CS0234: The type or namespace name 'Entity' does not exist in the namespace 
'System.Data' (are you missing an assembly reference?)

当我查看项目时,发现每个NuGet包文件夹都存在,但DLL文件缺失。这本身是一个 简单的修复;我只需要删除有问题的包,在下一次构建时NuGet会恢复包并且DLL现在可以使用。
我不理解为什么NuGet在第一次尝试时没有获取到DLL文件?
1个回答

2
我花了一段时间才弄清楚发生了什么,但问题不在于NuGet,而是源代码控制的设置。我没有将“packages”文件夹添加到Mercurial的忽略列表中。默认情况下,它会将NuGet包上传到BitBucket,但会忽略DLL文件。当另一个用户下载项目时,它会拉取包并且Visual Studio或TeamCity看到包文件夹后会假定该包已经下载完成。将packages文件夹添加到.hgignore文件中可以防止这种情况再次发生。

1
感谢您在此分享解决方案,您可以将其标记为答案,以帮助其他遇到相同问题的社区成员。 - Leo Liu
@Leo-MSFT - 感谢您的提醒,我只是在等待接受自己答案的2天限制结束。 - GrandMasterFlush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接