破碎的Nuget包参考文献开箱即用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了破碎的Nuget包参考文献开箱即用相关的知识,希望对你有一定的参考价值。
与Nuget Packages are there but missing References相同的症状,但更简单的用例复制:
- 用户A将他/她的代码签入TFS
- 用户B(或C,D等)首次从TFS获得解决方案,或者进入一个全新的地方。
结果: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 'PathToMySolutionpackages'
...
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,不包括Source Control中的包文件夹是关键!请回答,以便我接受。
以下是由完全不同的问题引起的 - All MS VS References broken after project moved。
但是,即使在上面,并使用“NuGet Package Restore”下载它们,我仍然得到以下内容:
错误此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是.. packages Selenium.WebDriver.ChromeDriver.2.28.0 build 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
”已经检查过了。- 我已经多次删除了
packagesSelenium.WebDriver.ChromeDriver.2.28.0
文件夹,并且也进行了几次“NuGet Package Restore”,但问题仍然存在。什么是正确的解决方案?
破碎的Nuget包参考文献开箱即用
根据UPDATE2中的错误日志:
Package 'NUnit 3.6.1' does not exist in project 'MyProj'
Package 'NUnit 3.6.1' already exists in folder 'PathToMySolutionpackages'
您似乎在源代码管理中添加了packages文件夹。
要解决此问题,您应该从源代码管理中删除该packages文件夹。你只需要检查packages.config
(或project.json
)到源代码控制,当其他用户B
从TFS获得解决方案,然后使用命令行Update-Package -reinstall
,VS / NuGet将首先恢复包,然后重新安装dll到该项目。
以上是关于破碎的Nuget包参考文献开箱即用的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 揭秘与实战 源码分析 - 开箱即用,内藏玄机
lv_lib_100ask| 基于lvgl库的各种开箱即用的方案参考或对lvgl库的组件增强接口