安裝 bin\roslyn\csc.exe 以支援 C# 7.3 以上版本的正確新姿勢
結論
珍愛生命,遠離 Web Site Project
改為安裝以下套件 (原本是 Microsoft.CodeDom.Providers.DotNetCompilerPlatform)
Microsoft.CodeDom.Providers.DotNetCompilerPlatform.WebSites
備註
找不到 Bin\roslyn\csc.exe
時,可以到 套件管理器主控台
執行以下命令
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform.WebSites -r
說明
最近更新 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 到 4.1.0 版本
發現找不到新編譯器 bin\roslyn\csc.exe
一路追查到官方 GITHUB
才發現新版本已經改用 csproj 來處理
但是舊專案是 Web Site Project (WSP)
並沒有 .csproj 專案檔可以用
好在?官方貼心的為我們準備了另一個套件
Microsoft.CodeDom.Providers.DotNetCompilerPlatform.WebSites
專門給一些老不死的專案來用
總之我移除重新裝了之後 roslyn 又會出現在 bin 裡頭了
參考
完全遷移到基於 msbuild/targets 的模型將破壞無專案的 ASP.Net “網站” [Web Site Project (WSP)]。
隨著 NuGet 的不斷發展,舊的 install.ps1 做事方式變得越來越站不住腳。
切換到 msbuild/targets 是一個簡單的選擇。
但是“網站”專案在 msbuild 中的支援非常有限。
我們創建了一個新包,該包恢復了僅適用於網站的 3.X 版本的“install.ps1”功能。
它被稱為 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.WebSites
。
來源
GitHub - aspnet/RoslynCodeDomProvider: Roslyn CodeDOM provider