從版控 Git 上抓下新專案要進行建置時,發生建置失敗的事件錯誤訊息如下
Could not find a part of the path 'D:\git\projectName\bin\roslyn\csc.exe'.
從建置失敗的錯誤訊息中可以很清楚看到失敗是因為 bin 底下少 roslyn\csc.exe 檔案,之前也遇過類似的案例,在此簡單記錄一下遇到這問題時該如何處理
甚麼是 Roslyn ?
Roslyn 是 C# 之父在 //Build/ 2014 公布的 .NET Compiler Platform (Open Source),可以協助分析程式碼的語法(syntax)、語意(semantics)等等,今天不是在介紹新一代編譯平台,詳細可以參考 Roslyn 平台介紹,重點是為什麼 Roslyn 跟這有關係呢 ? 在 .Net Framework 4.5.2 使用 Visual Studio 2015 建立專案,預設會使用 Roslyn 進行編譯的動作,稍微整理一下有以下幾種方式可以解決
刪除 Roslyn
如果確認專案中不需要使用到 Roslyn,可以透過 Nuget 刪除它
- 開啟Nuget Console,輸入以下指令
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
在 MSBuild 設定
專案檔設定 AfterBuild 事件
<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
<ItemGroup>
<RoslynFiles Include="$(CscToolPath)\*" />
</ItemGroup>
<MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>
Rebuild
在專案建置 > 按下重新建置,即可解決此問題
後記
自己解法都是很直覺
參考
could-not-find-a-part-of-the-path-bin-roslyn-csc-exe
找不到 roslyn\csc.exe ?!
0 意見:
張貼留言