为什么Visual Studio找不到这个nuget包的.props文件?

时间:2017-10-31 19:02:34

标签: c# visual-studio mstest

我的团队不得不转移到新的git实例。那个能够从旧服务器迁移所有分支机构的人错过了我正在工作的功能分支。我的作弊解决方案是将我在旧功能分支中添加的项目复制到我的桌面,克隆新的repo,创建一个新的功能分支,将.csproj和所有.cs文件复制到适当位置的目录中,然后从解决方案资源管理器中添加现有项目。

当我尝试构建时,出现错误:

  

此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是.. \ packages \ MSTest.TestAdapter.1.1.11 \ build \ net45 \ MSTest.TestAdapter.props。

对项目的引用包含四个缺少的引用,其中两个(Microsoft.VisualStudio.TestPlatform.TestFramework和Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions)似乎是相关的。另外两个,如果它被证明是相关的是System和System.Core,但它们不会引起任何问题......这很奇怪,因为我会使用它们。

无论如何......那个错误信息中的那个文件绝对存在。我试图卸载并重新安装这两个软件包,但似乎没有任何帮助。谁能告诉我我失踪了什么?

3 个答案:

答案 0 :(得分:7)

使用您喜欢的文本编辑器打开项目.csproj文件,并删除任何参考文件

  

MSTest.TestAdapter.props。

编辑:这样做是安全的,所有发生的事情是你已经删除了DLL,但由于某种原因,你的项目文件仍然将它作为依赖项引用。

答案 1 :(得分:5)

我会修改@JoshuaDuxbury的回答,说:您需要清除对MSTest.TestAdapter.props过时引用

就我而言,我刚刚将MSTest.TestAdapter NuGet fronm 1.3.2更新为2.0.0,但是显然当我这样做时,Visual Studio并没有完美地清理我的.csproj文件。 。

因此,我不得不删除在两个地方突出显示的 superflous MSTest.TestAdapter.props

项目文件顶部附近: delete the highlighted line of code if you have two

...然后再次在文件底部: enter image description here 一旦这样做,我的CI管道就可以再次正确构建所有内容。

一些锐利的眼睛可能会注意到上面显示的MSTest.TestAdapter 1.3.2的一些有趣之处:似乎packages文件夹的路径已关闭!但这可能是另一个线程的主题(或者可能是为什么您的构建管道不满意的另一种解释。也许只是将您的软件包路径修复了。)

答案 2 :(得分:0)

我的问题不是发生在我的开发箱上,而是发生在 Azure Build Pipeline 上。我根据其他答案删除了有问题的道具文件,但无济于事。最终,我不得不将 Nuget restore 步骤添加到我的 Azure 构建管道中,并在构建之前将其移动到正确的插槽中:

enter image description here