问题描述
我很沮丧,我有一个MVC项目4.5,这是一个非常简单的项目。我可以在本地构建它,也可以发布它,但是当我尝试执行MSBuild时,会出现以下错误:
我检查了我的Nuget已安装节点,但尚未安装(此时我必须已将其卸载),但是安装它时出现了错误。无论如何,我都会再次安装它,检查我的未完成更改并进行重建:
现在我得到了一个不同但相似的错误:
现在,我已检查软件包已安装在我的NuGet中,并且已安装。 我的package.config显示以下内容:
<package id="Microsoft.Net.Compilers" version="2.6.1" targetFramework="net45" developmentDependency="true" />
我检查了“ Microsoft.Net.Compilers.2.6.1 \ tools”文件夹。
我的.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.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.Toolset.3.7.0\build\Microsoft.Net.Compilers.Toolset.props'))" /> -->
<!-- <Error Condition="!Exists('packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props'))" /> -->
<!-- <Error Condition="!Exists('packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props'))" /> -->
<Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.targets'))" />
<Error Condition="!Exists('packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props'))" />
<!-- <Error Condition="!Exists('packages\Microsoft.Net.Compilers.2.7.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.2.7.0\build\Microsoft.Net.Compilers.props'))" /> -->
<!-- <Error Condition="!Exists('packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)','packages\Microsoft.Net.Compilers.3.7.0\build\Microsoft.Net.Compilers.props'))" /> -->
</Target>
<Import Project="packag
我试图删除.csproj的选择,但没有任何区别。我只是不明白。
任何帮助都将受到欢迎。
解决方法
因此,此问题已解决。事实证明,Microsoft.Net.Compiler.2.6.1要求您的项目在.NET 4.7.2下运行,我们的环境和解决方案当前都在.NET 4.5上。在VS2017中创建解决方案时,会自动安装此NuGet软件包。希望这对可能遇到此问题的其他人有所帮助。