Why can't Visual Studio find this nuget packag

2020-04-02 09:03发布

问题:

My team had to move to a new git instance. The guy that was goodly enough to migrate all the branches from our old server missed a feature branch I'm working in. My cheat-y solution was to copy the project I had added in my old feature branch to my desktop, clone the new repo, make a new feature branch, copy the .csproj and all the .cs files into the directory at the appropriate place, then add the existing project from the solution explorer.

When I try to build, I get an error:

This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props.

The references to the project contain four missing references, two of which (Microsoft.VisualStudio.TestPlatform.TestFramework, and Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions) seem to be related. The other two, in case it proves to be relevant are System, and System.Core, but they aren't causing any problems... which is weird, cause I'm deffo using them.

Anyway... that file, the one from the error message, is absolutely there. I've tried to uninstall and reinstall both packages, but nothing seems to help. Can anyone tell me what I'm missing?

回答1:

Open the projects .csproj file with your favourite text editor and delete any references to

MSTest.TestAdapter.props.

Edit: This is safe to do so, all that happened is that you have removed the DLL but for one reason or another your project file still references it as a dependency.



回答2:

I would modify @JoshuaDuxbury's answer to say: you need to clean out obsolete references to MSTest.TestAdapter.props.

In my case, I had just updated the MSTest.TestAdapter NuGet fronm 1.3.2 to 2.0.0, but apparently when I did that, Visual Studio didn't clean up my .csproj file perfectly.

So, I had to delete the superflous MSTest.TestAdapter.props highlighted in two places:

Near the top of the project file:

...and again at the bottom of the file: Once I did that, my CI pipeline was able to build everything correctly again.

Some of you with sharp eyes may notice something funny w/the 1.3.2 of MSTest.TestAdapter shown above: it seems the path to the packages folder is off! But that would be a topic for a different thread (or maybe an alternate explanation to why your build pipeline is unhappy.. maybe just fix your path to packages).