image

 
發生情境
從版本控制Git上抓下新專案要進行建置時,發生建置失敗的事件錯誤消息如下所示:
找不到路徑“      \ bin \ roslyn \ csc.exe”的一部分。
從建置失敗的錯誤訊息中可以很清楚看到失敗是因為bin底下少roslyn \ csc.exe檔案,之前也遇過類似的案例,在此簡單記錄一下遇到這問題時該如何處理什麼是羅斯林? Roslyn是C#之父在  ///// 2014年發布的.NET編譯器平台(開放源代碼),可以協助分析程序代碼的語法(語法),語意(語義)等等,今天不是在介紹新一代編譯平台,詳細可以參考Roslyn平台介紹,重點是為什麼Roslyn跟這有關係呢? 在.Net Framework 4.5.2使用Visual Studio 2015建立專案,可以使用Roslyn進行編譯的動作,稍微整理一下有以下幾種方式可以解決刪除Roslyn如果確認專案中不需要使用到


 


,可以透過Nuget刪除它
-開啟Nutt Console,輸入以下指令
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers

 

 

方法二

卸除方案>修改 *.csproj

步驟:專案右鍵>卸除專案>編輯.csproj

貼下面的指令

在專案建置>按下重新建置

貼上收工

 

image

image

 

加入以下的程式碼


在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>

重建
在專案建置>按下重新建置,即可解決此問題
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 王瘇子 的頭像
    王瘇子

    王瘇子C# 學習倉庫

    王瘇子 發表在 痞客邦 留言(0) 人氣()