自Visual Studio 2017發佈以來,我們可以使用新的C#7功能,我期望在部署Azure Web應用程序時可以使用這些功能。我們可以使用Kudu將C#7 Web應用程序部署到Azure嗎?
不幸的是,當使用持續部署(kudu git deploy)時,我們發現編譯錯誤,因此看起來Azure不支持新的工具鏈。
有什麼我們可以做的,現在就開始工作(除了直接發佈程序集)?
自Visual Studio 2017發佈以來,我們可以使用新的C#7功能,我期望在部署Azure Web應用程序時可以使用這些功能。我們可以使用Kudu將C#7 Web應用程序部署到Azure嗎?
不幸的是,當使用持續部署(kudu git deploy)時,我們發現編譯錯誤,因此看起來Azure不支持新的工具鏈。
有什麼我們可以做的,現在就開始工作(除了直接發佈程序集)?
因爲我們還沒有在Azure中使用msbuild15。 如果你想使用C#7特點與持續集成,你可能需要一些變通方法
dotnet msbuild.dll
)repository sample]Microsoft.Net.Compilers
2.0+ NuGet包添加到項目中,新的語言功能適用。例如,如果解決方案中的類庫使用新語法,則需要將nuget包添加到該lib項目。 (如果參照此NuGet包的新的C#編譯器因此進口)[repository sample]nuget restore
lib項目獨立由於dotnet restore
不向下兼容,因此無法從舊版系統中退回項目。我這樣做的黑客我deploy.cmd
[repository sample]這些替代方法要麼試圖
模仿msbuild15(情形:dotnet msbuild.dll
,案例2:編譯器作爲NuGet包)
或模仿nuget4.0(案例3:運行dotnet restore
和nuget3.5 restore
)
我們正在爲Azure構建這些工具的過程中,他們應該很快就會出來。你可以保持更新github
添加Microsoft.Net.Compilers解決了這個問題......但顯着減慢構建!這太令人沮喪了:( – Subgurim
@Subgurim msbuild-15.3-preview已經在Azure west us2中,這個建築工具很快就會到處可用 – watashiSHUN
太好了!我希望它能夠正確地宣佈;) – Subgurim
添加Microsoft.Net.Compilers
NuGet包修復了此問題。
「[您需要安裝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
@watashiSHUN這不是一回事。只有在部署問題時,c#7功能才能在VS2017中正常運行。 –
這對我不起作用 – Jonathan
您使用的是Kudu的本地版本嗎? – DavidG
不,我們只是在致力於Github,它會觸發Azure使用Kudu來獲取更改。 –
哦,我想知道他們是否還沒有更新到Azure上的最新構建工具。你能從日誌中知道MSBuild的運行版本嗎? – DavidG