我正在尝试使用Xamarin和Visual Studio 2015与另一位拥有源代码控制权限的朋友创建一个Android应用程序。
一切顺利,直到我的朋友添加了一个项目并且他使用了NuGet包。
在我激活获取最新版本并尝试构建解决方案后,我收到了错误消息:
Severity Code Description Project File Line
Error 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 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props. iBuy.API C:\Users\איציק\Source\Workspaces\iBuy\IBuy\iBuy.API\iBuy.API.csproj 164
我查找了一些针对此问题的解决方案并尝试卸载Microsoft.CodeDom.Providers.DotNetCompilerPlatform和Microsoft.Net.Compilers包并重新安装它们但它没有帮助。 我的解决方案中甚至没有\ packages \ Microsoft.Net.Compilers.1.0.0 \ build文件夹。
NuGet包恢复中的所有内容都已经过检查,我的解决方案中没有任何'.nuget'文件。
如何消除该错误消息?
提前谢谢!
答案 0 :(得分:13)
将出现该错误消息,因为您没有.nuget \ NuGet.targets文件。
要解决此问题,您可以停止使用基于MSBuild的NuGet包还原,或将.nuget / NuGet.targets文件添加到源代码管理中。
NuGet团队不推荐使用基于MSBuild的NuGet包还原。它为项目文件(.csproj)添加了一些额外的元素:
<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>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
您可能在EnsureNuGetPackageBuildImports目标元素中有更多项目。您可以从项目文件中删除它们,而是依赖Visual Studio来恢复NuGet包。