我研究了这个问题,但没有一个解决办法有效。我安装了Visual Studio Professional 2015,我正在使用TFS。我的NuGet版本是3.1.6。这个问题只发生在我的c# Web API/MVC项目中。

我得到以下错误:

这个项目引用了NuGet包(s),这是缺失的 电脑。使用NuGet包还原来下载它们。更多的 信息,见http://go.microsoft.com/fwlink/?LinkID=322105。的 丢失的文件是 . . \ \ Microsoft.Net.Compilers.1.0.0 \制造\ Microsoft.Net.Compilers.props包

I do not have .nuget folder in my solutions. I have a packages folder in the solution and when I delete it, it seems like NuGet does rebuild the dependencies but the project still has the above error. I tried removing the project from TFS and it didn't fix it. Along with the above error, all the references in the project have yellow warning signs and say they are missing. When I checked the NuGet Package Manager for the project, everything that is "missing" has a green tick next to it, including Microsoft.Net.Compilers. I tried adding a new Web API/MVC project and it faced a similar problem where most references such as Owin were "missing" with the yellow warning sign.


当前回答

我找不到任何解决方案,所以我添加了一个nuget.exe副本和一个powershell脚本到解决方案的根目录,称为prebuild。Ps1的以下内容。

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

在我的构建中,我在预构建脚本路径中调用这个powershell脚本

其他回答

在我的例子中,*中缺少<RestorePackages>true</RestorePackages>。csproj文件。没有必要删除我在前面的回答中看到的代码片段。

我知道这个问题很老了,但是我今天遇到了同样的情况,我想为最近发现这个问题的人提供我的2美分。我手动移动到解决方案中的一个子文件夹,然后使用Visual Studio 2017删除并读取到解决方案的一个ASP MVC项目给出了上述错误。移动“lib”和“packages”文件夹到同一子文件夹的根MVC项目修复了我的问题。

您还可以使用建议的错误消息作为提示。下面是如何找到解决方案的管理包,并单击解决丢失的nuget包。

就是这样

如果使用package,也会得到这个错误。与此构建命令一起配置

MSBuild.exe /t:Restore MySln.sln

在这种情况下,要么切换到nuget恢复命令,要么使用PackageReference。

我今天也犯了同样的错误(丢失了完全相同的包裹)。我还创建了一个MVC + Web API项目。

发生这种情况是因为我将应用程序文件(包括.csproj)文件移动到另一个位置。我手动更新了.sln文件,但所有包依赖项现在(Visual Studio 2015)存储在.csproj文件中。

编辑.csproj文件并更正解决方案文件夹(其中包含packages文件夹)的相对路径,为我解决了这个问题。