Visual Studio 打开 C# 项目,看到 System、System.Data、System.IO 这些内部引用,前面有个感叹号。
同时编译时提示:
这台计算机上缺少此项目引用的 NuGet 程序包。 使用“NuGet 程序包还原”可下载这些程序包。 有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。 缺少的文件是 ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0 \build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props。
按照Visual Studio TFS 协作开发时,缺少 NuGet 的包引用一文的处理方式,也无效。
我又去 NuGet 为其安装了 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 这个包,我以为解决了,哪知故障依旧(也许是因为我的版本和它要求的不一致)。
后来解决办法居然是:打开 .csproj 文件,删除下面的内容:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0 \build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0 \build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> </Target>
因为我根本不需要这个包,所以我前面 NuGet 安装后,还将其卸载了,也可以运行。