自Visual Studio 2017发布以来,我们可以使用新的C#7功能,我希望在部署Azure Web应用程序时可以使用这些功能。
不幸的是,我们在使用持续部署(kudu git deploy)时会看到编译错误,所以Azure似乎还不支持新的工具链。
我们现在有什么办法可以让它现在起作用(除了直接发布程序集)吗?
答案 0 :(得分:21)
因为我们还没有Azure中的msbuild15。 如果您想在持续集成中使用c#7功能,则可能需要一些解决方法
dotnet msbuild.dll
)[repository sample] Microsoft.Net.Compilers
2.0+ nuget包添加到应用了新语言功能的项目。例如,如果解决方案中的类库使用新语法,则需要将nuget包添加到该lib项目。 (如果引用此nuget包,则会导入新的c#编译器)[repository sample] nuget restore
由于dotnet restore
不向后兼容,因此无法从旧的构建系统中恢复项目。我是通过黑客攻击deploy.cmd
[repository sample] 这些解决方法要么尝试着
模仿msbuild15(case1:dotnet msbuild.dll
,case2:编译器作为nuget包)
或模仿nuget4.0(案例3:同时运行dotnet restore
和nuget3.5 restore
)
我们正在为Azure构建这些工具,它们应该很快就会推出。您可以在github
上保持最新状态答案 1 :(得分:3)
添加Microsoft.Net.Compilers
NuGet包解决了这个问题。
答案 2 :(得分:0)
@joshuanapoli在comment中对已接受答案的指出。方案2仅适用于Microsoft.Net.Compilers v2.4.0及更低版本。
花了我几个小时来注意到并弄清楚它。