代码之家  ›  专栏  ›  技术社区  ›  Mauro Piccotti

旧的ASP.NET 4应用程序的生成服务器无法生成新的C#7,但它可以在开发中工作

  •  0
  • Mauro Piccotti  · 技术社区  · 6 年前

    ASP.NET .NET framework 4.0 VS 2017年 ,已使用的新版本更新生成服务器

    在本地,我们可以编写最新版本(7.3)的C代码,构建工作正常(如果我没记错的话,VS不使用MSBuild),但是当我们在构建服务器上部署时,构建会失败,因为 无法识别比 . 为了避免出现错误,我将lang版本修改为4.0(项目的高级构建属性),因此如果我编写太新的C#VS,会在dev中阻塞我,但我们希望开始使用新的C#。

    我们还尝试在项目中直接修复C#7.3( <LangVersion>7.3</LangVersion> 但是 ToolsVersion 项目元素(csproj)的属性设置为14.0,但生成we MSBuild失败,错误为:

    CS1617:langversion的选项6无效;必须是ISO-1,ISO-2,3,

    这里解释了我想做的是可能的: https://www.dotnetcurry.com/dotnet/1427/build-apps-different-dotnet-framework-versions

    无论我们在项目中针对哪个.NET framework版本 使用中的C语言版本不会更改。那很好,因为 绝大多数的语言特性都是在以后的版本中引入的 它们只是语法糖和 编译器仍将在.NETFramework 2.0中工作。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Mauro Piccotti    5 年前

    问题是在生成服务器上没有正确安装MSBuild,并且生成脚本得到了一个旧脚本。 安装VisualStudio2017构建工具并修复我们解决的脚本上的路径。

    在我们遇到“找不到GetReferenceNearestTargetFrameworkTask”问题之后,我们按照下面的说明进行了解决: The "GetReferenceNearestTargetFrameworkTask" task was not found