我研究了这个问题,但没有一个解决办法有效。我安装了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。config在我的解决方案的根文件中,是. sln文件的兄弟,正如David Ebbo在这里解释的:http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html。

从Ebbo的博客文章来看,文件内容对我来说很简单

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

更新:

v3的NuGet API URL已更改(截至2016年9月)。从https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

其他回答

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

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

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

只要启用NuGet包恢复。 右键单击您的解决方案>选择“启用NuGet包恢复”。

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

我的问题是NuGet不能自动获取/更新包,因为完整的文件路径太大了。通过将我的解决方案移动到我的文档中的一个文件夹而不是一个深度嵌套的文件夹来修复。

然后可以右键单击解决方案并选择“恢复NuGet包”(如果您只是构建它并让它为您完成它,这可能是不必要的),然后选择“管理解决方案的NuGet包”以将所有包更新到最新版本。

这是从微软网站上下载的一个ASP MVC应用程序示例的解决方案。

为了在这里展开一些答案,是的,你可以从你的.csproj文件中删除以下块:

<目标

这解决了问题,但在我的情况下,我注意到我有额外的引用。net。编译器和。codedom。不同版本的供应商:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

当我的包裹。配置仅参考以下内容:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

从.csproj文件中删除1.0.0项解决了这个问题。

0

对于nuget引用,我们可以通过引用或通过包添加a。配置文件。

在Visual Studio 2017中,字母顺序或nuget引用由VS自动处理。

但是在Visual Studio 2019中。如果你的nuget引用不是按字母顺序排列的,那么VS就不要在引用文件夹中加载文件。

为了解决这个问题。——删除.csproj/vbproj或package.config中的所有引用。

——保存在记事本中。尝试通过Nuget包管理器添加这些。

第一次试试。一旦安装。

—右键单击解决方案->恢复所有nuget包。

-你会看到它加载了一个nuget引用。

——现在一个一个做。

——如果你100%确定你的参考文献是按字母顺序排列的。只需将它们全部粘贴到.csproj/vbproj或package.config中即可。

—恢复溶液中的所有核。

你会看到所有的符号都将被加载。在解决方案资源管理器的顶部图标刷新你的引用文件夹。

快乐的引用。