我有一个ASP。NET MVC5应用程序,昨天工作,现在我得到这个错误时,我试图构建:
该项目引用了这台计算机上缺少的NuGet包。
我已经检查了两个选项,允许nuget自动下载和安装丢失的包检查/打开。我还尝试删除packages文件夹中的所有文件,然后让nuget重新下载它们。另外,当我打开nuget并寻找更新时,它说没有需要安装的。我想不出还能做些什么来解决这个恼人的问题。
我还通过右键单击项目并选择该选项启用了nuget恢复。然后,它添加了一个nuget文件夹和该文件夹中的三个项目,但没有采取任何措施来解决问题。我已经尝试重新构建,但仍然得到相同的错误。
在我的情况下,我必须从.csproj文件中删除以下内容:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
事实上,在这个代码片段中,您可以看到错误消息的来源。
我正在从msbuild集成包还原转换为自动包还原(https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore#migrate-to-automatic-package-restore)
这个错误似乎是在代码的某个地方触发的。我们来看看。Csproj文件,可以在末尾找到它。
步骤1
从包中删除包。配置文件。
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />
步骤2
编辑.csproj项目文件并删除以下设置
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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 {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
步骤3
进入包管理器控制台,执行Update-Package -重装命令
当我从公司得到一台新电脑,并试图用Git克隆它后构建项目时,我遇到了这个问题。问题是我的NuGet设置不包括一个远程存储库,从中获取包。根据NuGet.org的FAQ,我发现了这个:
我在我的存储库列表中没有看到nuget.org,我怎么把它找回来?
将https://api.nuget.org/v3/index.json添加到您的源列表中,或者
删除% appdata % \ .nuget \ NuGet。Config (Windows)或~/. NuGet/NuGet /NuGet。配置(Mac/Linux),让NuGet重新创建它。
在我的例子中,没有%appdata%\。nuget目录在我的机器上,所以从Visual Studio中,我遵循以下步骤来修复这个问题:
单击工具栏中的“工具> NuGet包管理器>包管理器设置”
在左侧列表中选择“NuGet Package Manager > Package Sources”
单击右上方的绿色+以添加一个新源
“Name: value”设置为“NuGet.org”
Source: value设置为https://api.nuget.org/v3/index.json
在那之后,NuGet能够下载它找不到的软件包。
为了消除构建中的错误,我执行了以下步骤:
删除解决方案中的bin和obj目录
单击工具栏中的Build > Rebuild Solution
一旦构建完成,错误就消失了。