【问题标题】:Microsoft.Net.Compilers is only supported on MSBuild v16.3 and aboveMicrosoft.Net.Compilers 仅在 MSBuild v16.3 及更高版本上受支持
【发布时间】:2020-05-20 20:56:03
【问题描述】:

我第一次在 Visual Studio 2019 上打开我的一个项目时遇到了这个问题。这是我大约三年前创建的一个项目,每年只要求我进行一些更改。

我第一次尝试在 Visual Studio 2019 上编译此项目时收到与 csc.exe 文件相关的错误,由于我之前遇到过此错误,因此我在 Nuget 包管理器中重新安装了编译器组件,就像我以前成功的那样。

之后,我收到错误“Microsoft.Net.Compilers 仅支持 MSBuild v16.3 及更高版本”。

我在Microsoft Developer Community 上找到了一些解决方案,建议打开和编辑文件:“packages\Microsoft.Net.Compilers.3.4.0\build\Microsoft.Net.Compilers.props”,但它看起来很奇怪我。

【问题讨论】:

  • 在尝试构建时能否发布 MSBuild 或 IDE 的输出?
  • 不,我没有。修复后,我无法再重现该错误。我将尝试编译其他项目,以尝试再次出现相同的错误。

标签: c# msbuild visual-studio-2019


【解决方案1】:

编辑:作为this new answer to another question states,您的项目中不太可能需要Microsoft.Net.Compilers。通读该答案以确保您确实需要它。如果您不这样做,删除 Microsoft.Net.Compilers 应该可以解决您的问题。如果您仍然需要其有限的功能,或者卸载后遇到问题,请继续阅读原始答案:


我在升级到 .NET Framework 4.7.2 后遇到了这个问题,并且无法升级到建议的 Microsoft.Net.Compilers 测试版,因为它似乎不可用。

需要注意的是Microsoft.Net.Compilershas been deprecated,建议迁移到Microsoft.Net.Compilers.Toolset

要迁移,you can simply use Nuget 卸载 Microsoft.Net.Compilers 并安装 Microsoft.Net.Compilers.Toolset

两者的版本号对我来说是相同的,但是这解决了我的问题并且我能够构建

【讨论】:

    【解决方案2】:

    在尝试修复它几个小时后,我只是在 Nuget 包管理器中卸载了重新安装两个组件的最新稳定版本:

    • Microsoft.CodeDom.Providers.DotNetCompilerPlataform v 2.0.1;

    • Microsoft.Net.Compilers v 3.4.0

    从现在开始一切正常。

    【讨论】:

    • 太棒了!感谢您在这里分享您的解决方案,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以存档这个帖子,谢谢。
    • 我遇到了完全相同的错误(VS2017 项目移至 VS2019)- 在本地运行良好,但在发布时遇到了该错误。在调试模式和发布模式下运行重建几次似乎已经清除它
    • 为什么两者都需要?这不是两个构建系统,在这种情况下只会使用一个或另一个吗? Microsoft.CodeDom.Providers.DotNetCompilerPlatform 曾经将 Microsoft.Net.Compilers 作为依赖项,然后在 2.0.1 版本中消除了该依赖项。不过,v2.0.1 从 2018 年开始就没有更新过,现在 Microsoft.Net.Compilers 好像最近才更新到 22 天前。那么现在应该使用哪一个呢?这些似乎是相互排斥的包,其中一个曾经是最佳选择,然后是另一个,现在 Microsoft.Net.Compilers 又是最新和最伟大的
    • 嗨@Triynko 我真的不知道,老实说,我无法进行更深入的调查,因为我必须继续其他任务才能进一步完成我的项目。也许如果这个问题再次发生,我有机会尝试只使用其中一个。
    【解决方案3】:

    将nuget包Microsoft.Net.Compilers升级到版本3.5.0-beta2-final,它应该可以工作了。

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 2022-11-08
      • 2014-08-18
      • 2015-05-10
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多