我研究了这个问题,但没有一个解决办法有效。我安装了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包恢复。 右键单击您的解决方案>选择“启用NuGet包恢复”。

这将创建带有NuGet的. NuGet文件夹。配置文件,并解决了我的问题。

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

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

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

注意——这将更新整个解决方案的包,而不仅仅是项目。

如果你还有一个丢失的nuget包,在构建解决方案时给出错误,请使用以下命令,从工具> nuget包管理器>包管理器控制台使用nuget命令控制台。它将重新安装您的所有当前包。

Update-Package –reinstall

更新:

您可以将特定的项目名称作为参数传递。

Update-Package –reinstall -ProjectName SampleApp

我的工作时,我复制包文件夹解决方案文件和项目文件夹。我只是没有复制包文件夹从以前的地方。

对于DevOps/构建工程师,您可能可以针对受影响的SLN或缺乏SLN的项目修复此运行nuget恢复。我必须为我们所有UWP项目的CI/CD构建这样做。

Make sure nuget is installed on the build slave either in Visual Studio or standalone. If it's the latter, make sure it's in PATH and skip step 2. Either open the VS Dev CMD console, or load it via an already open one, which you can do with the instructions below: VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat" or VS2017 call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat" call nuget restore MyStuff.SLN or call nuget restore MyStuff.csproj if there's no SLN.