同样的症状 Nuget Packages are there but missing References 但复制的用例要简单得多:
结果:Nuget维护的所有References dll显示破碎的黄色三角形,即使在该线程推荐的“Clear All NuGet Cache”和“Update-Package -reinstall
”hack之后也是如此。关闭&重新开放VS&解决方案将不起作用,尽管在Update-Package -reinstall
之后,dll正好在那里。
这是VS2017版本15.3.5。
更新
结果显示“可用”是“.xml
”文件,其文件浏览器中的扩展名未正常显示。即,“.dll
”文件丢失,Update-Package -reinstall
未恢复。
UPDATE2:
Update-Package -reinstall
无效,因为 failed to add reference
( Reference unavailable
)。以下是完整日志:更新:解决后删除,查看历史记录,或从https://pastebin.com/1e5axkTm结帐。
当我查看日志时,我明白了,
Package 'NUnit 3.6.1' does not exist in project 'MyProj'
Package 'NUnit 3.6.1' already exists in folder '\Path\To\MySolution\packages'
...
Update-Package : Failed to add reference to 'nunit.framework'.
Reference unavailable.
我的解释是,因为nunit.framework
DLL不在TFS中,因此在本地不可用于从TFS获得解决方案的用户B(或C,D等),但是Update-Package -reinstall
没有注意到,也无法解决问题。因此导致更多问题 - failed to add reference
( Reference unavailable
)。
UPDATE3:
感谢@ LeoLiu-MSFT& @ starianchen-MSFT的帮助,不包括Source Control中的包文件夹解决了上述问题。 “Update-Package -reinstall
”现在没有任何错误(如果您需要仔细检查,https://pastebin.com/e8TpXg2D)
最终更新:
是的,@ LeoLiu-MSFT& @ starianchen-MSFT,不包括源代码管理中的包文件夹 是 的关键!请回答,以便我接受。
以下是由完全不同的问题引起的 - All MS VS References broken after project moved。
但是,即使经过上述操作,也可以使用“NuGet Package Restore”进行下载 他们,我仍然得到以下内容:
错误此项目引用了缺少的NuGet包 这台电脑。使用NuGet Package Restore下载它们。更多 信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。该 遗失的文件是 .. \包\ Selenium.WebDriver.ChromeDriver.2.28.0 \建立\ Selenium.WebDriver.ChromeDriver.targets。
- 我已检查http://go.microsoft.com/fwlink/?LinkID=322105页面,“
Allow NuGet to download missing packages
”和“Automatically check for missing packages during build in Visual Studio
”已经过检查。- 我已多次删除
packages\Selenium.WebDriver.ChromeDriver.2.28.0
文件夹,并多次执行“NuGet Package Restore” 好吧,但问题仍然存在。什么是正确的解决方案?
答案 0 :(得分:1)
破坏Nuget包参考文件开箱即用
根据 UPDATE2:
中的错误日志Package 'NUnit 3.6.1' does not exist in project 'MyProj'
Package 'NUnit 3.6.1' already exists in folder '\Path\To\MySolution\packages'
您似乎在源代码管理中添加了packages文件夹。
要解决此问题,您应从源代码管理中删除该packages文件夹。您只需要检查源控件的packages.config
(或project.json
),当从TFS获取解决方案的其他用户B
,然后使用命令行Update-Package -reinstall
时, VS / NuGet将首先恢复软件包,然后将dll重新安装到项目中。