2017-03-28 159 views
13

自Visual Studio 2017發佈以來,我們可以使用新的C#7功能,我期望在部署Azure Web應用程序時可以使用這些功能。我們可以使用Kudu將C#7 Web應用程序部署到Azure嗎?

不幸的是,當使用持續部署(kudu git deploy)時,我們發現編譯錯誤,因此看起來Azure不支持新的工具鏈。

有什麼我們可以做的,現在就開始工作(除了直接發佈程序集)?

+0

您使用的是Kudu的本地版本嗎? – DavidG

+0

不,我們只是在致力於Github,它會觸發Azure使用Kudu來獲取更改。 –

+0

哦,我想知道他們是否還沒有更新到Azure上的最新構建工具。你能從日誌中知道MSBuild的運行版本嗎? – DavidG

回答

16

因爲我們還沒有在Azure中使用msbuild15。 如果你想使用C#7特點與持續集成,你可能需要一些變通方法

  1. dotnet的核心網絡解決方案,您可以在Azure中建立開箱的。 (它使用自己的dotnet msbuild.dllrepository sample]
  2. asp.net網絡解決方案,則需要Microsoft.Net.Compilers 2.0+ NuGet包添加到項目中,新的語言功能適用。例如,如果解決方案中的類庫使用新語法,則需要將nuget包添加到該lib項目。 (如果參照此NuGet包的新的C#編譯器因此進口)[repository sample]
  3. 終於爲混合液(dotnet的核心網絡應用+ .net框架類LIB),則需要針對.NET框架上運行nuget restore lib項目獨立由於dotnet restore不向下兼容,因此無法從舊版系統中退回項目。我這樣做的黑客我deploy.cmd [repository sample]

這些替代方法要麼試圖
模仿msbuild15(情形:dotnet msbuild.dll,案例2:編譯器作爲NuGet包)
或模仿nuget4.0(案例3:運行dotnet restorenuget3.5 restore

我們正在爲Azure構建這些工具的過程中,他們應該很快就會出來。你可以保持更新github

+0

添加Microsoft.Net.Compilers解決了這個問題......但顯着減慢構建!這太令人沮喪了:( – Subgurim

+1

@Subgurim msbuild-15.3-preview已經在Azure west us2中,這個建築工具很快就會到處可用 – watashiSHUN

+0

太好了!我希望它能夠正確地宣佈;) – Subgurim

3

添加Microsoft.Net.Compilers NuGet包修復了此問題。

+0

「[您需要安裝Microsoft.Net.Compilers 2.0+ nupkg才能支持C#7.0功能。](http://stackoverflow.com/questions/42216740/c-sharp-7-features-dont-work-within -a-web-project-on-visual-studio-2017-rc)「 – watashiSHUN

+0

@watashiSHUN這不是一回事。只有在部署問題時,c#7功能才能在VS2017中正常運行。 –

+1

這對我不起作用 – Jonathan

相關問題