我们可以使用Kudu将C#7 Web应用程序部署到Azure吗?

Rob*_*ssa 16 c# azure azure-web-sites c#-7.0 visual-studio-2017

自Visual Studio 2017发布以来,我们可以使用新的C#7功能,我希望在部署Azure Web应用程序时可以使用它.

不幸的是,我们在使用持续部署(kudu git deploy)时会看到编译错误,所以Azure似乎还不支持新的工具链.

有什么我们可以做的就是让它现在起作用(除了直接发布程序集)吗?

wat*_*HUN 22

因为我们还没有Azure中的msbuild15.如果您想在持续集成中使用c#7功能,则可能需要一些解决方法

  1. 对于dotnet核心Web解决方案,您可以在Azure中开箱即用.(它使用它自己的dotnet msbuild.dll)[ 存储库样本 ]
  2. 对于asp.net Web解决方案,您需要将Microsoft.Net.Compilers2.0+ nuget包添加到应用新语言功能项目中.例如,如果解决方案中的类库使用新语法,则需要将nuget包添加到该lib项目.(如果引用此nuget包,则会导入新的c#编译器)[ repository sample ]
  3. 最后对于混合解决方案(dotnet核心web应用程序+ .NET框架类lib),你需要独立运行nuget restore.NET框架lib项目,因为它不向后兼容,它不能从旧的构建系统中恢复项目.我通过黑客攻击我的[ 存储库示例 ]来做到这一点dotnet restoredeploy.cmd

这些替代方法要么试图
模仿msbuild15(情形1: dotnet msbuild.dll,情形2:编译器作为NuGet包)
或模仿nuget4.0(情况3:同时运行dotnet restorenuget3.5 restore)

我们正在为Azure构建这些工具,它们应该很快就会推出.你可以在github上保持更新

  • 方案#2适用于Microsoft.Net.Compilers v2.4.0,但不适用于v2.6.0(我仍然看到有关缺少MSBuild 15的错误). (6认同)
  • @joshuanapoli感谢您的提示。花了大约3个小时尝试让Kudu今天部署我的应用程序;我将Microsoft.Net.Compilers v.2.10.0降级到2.4.0,并成功。watashiSHUN-知道为什么必须降级此nuget程序包才能使其在全新的Azure应用服务计划上运行才能使kudu使用c#7元组构建.net 4.7吗? (2认同)