当我从 VS2012 中构建我的项目时,我收到以下错误消息
This project references NuGet package(s) that are missing on this computer.
Enable NuGet Package Restore to download them.
我为 NuGet 设置了 nuget 选项以下载丢失的包。
但是我仍然得到错误。我已经安装了 nugget 2.7。用VS2012更新3
当我从 VS2012 中构建我的项目时,我收到以下错误消息
This project references NuGet package(s) that are missing on this computer.
Enable NuGet Package Restore to download them.
我为 NuGet 设置了 nuget 选项以下载丢失的包。
但是我仍然得到错误。我已经安装了 nugget 2.7。用VS2012更新3
请按照以下提到的步骤操作:
第 1 步:请通过右键单击解决方案启用 Nuget 包还原 [如下面的截图所述]
第 2 步:[如果按照第 1 步解决问题/错误,请按照此操作] 如果您遇到问题,请在记事本中打开 .csproj 文件并检查可能看起来像这样的包路径
因此,您的解决方案目录结构将如下所示:
\SolutionDirectory\
包目录:
\SolutionDirectory\packages
项目目录:
\SolutionDirectory\ProjectName\ProjectName.csproj
请在记事本中打开此 .csproj [出现错误] 并搜索包路径并将其更新为相关路径。
例如,我的 .csproj 包含,如果 .csproj 文件包含,..\..\packages
则使用更新该路径..\packages
正如 Dan 所暗示的,如果您的解决方案有一个 .nuget 文件夹(通过启用包还原),那么 nuget 2.7 的自动包还原功能将被禁用,根据http://docs.nuget.org/docs/workflows/migrating -到自动包恢复。
如果禁用了自动包恢复,那么任何安装项目目标文件的包都会导致构建失败,直到您在解决方案中手动恢复该包,如http://blogs.msdn.com/b/dotnet/archive所述/2013/06/12/nuget-package-restore-issues.aspx。(请注意,由于 nuget 2.7 自动包恢复可用,链接中描述的解决方法已经过时。)
因此,如果这两件事都成立,则删除 .nuget 文件夹中的 NuGet.targets 文件,然后 Nuget 将在调用 MSBuild 之前恢复丢失的包。您也可以删除 .nuget 文件夹中的 nuget.exe,因为它将不再使用。
The answers are very helpful for me to find the solution. Since the resolution to my specific issue requires one more step, I report it here in case it is helpful to others. The error I was getting:
Error 117 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 ..\..\Windows Phone 8\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.
I followed the answers and deleted all the suggested things, but the error still kept showing up. I finally got rid of it by deleting the following line in the .csproj:
<Error Condition="!Exists(...
csproj
在记事本中打开文件并Error Condition
从此处删除元素(或使这些条件起作用):
<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'))" />
<Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets'))" />
</Target>
从解决方案中删除 .nuget 目录(如果存在)。编辑项目文件并删除包含对 .nuget 文件夹的引用的元素 Import 和 Target,保存并重新加载项目。
尝试这个,
只需右键单击解决方案并“启用 NuGet 包还原”即可解决我的问题。