IIS:Could not load file or assembly Microsoft.CodeDom.Providers.DotNetCompilerPlatform
RojerChen.2019.10.24
為了解決 Visual Studio:MsBuild 無法載入檔案或組件 Microsoft.CodeAnalysis 的問題,所以我把 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 升級到 1.0.4 版本後,只不過沒想到升級之後遇到了另外的問題:
- 網站發行會有問題
我的發布設定檔 pubxml 有下面這一段,如果把下面這一段移除就可以正常發行。
<PrecompileBeforePublish>True</PrecompileBeforePublish> - 部屬到 IIS 上會出錯
Could not load file or assembly 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
部屬到 IIS 上會出錯這個問題對我來說就比較麻煩了,因為 Web 要部屬到客戶端,我可是沒多大權限去做調整,結果查了一下發現到把 web.config 下面這一段移除掉就可以正常。<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
現階段來說這樣就可以解決我的問題了,至於有甚麼影響就後續再來觀察。
參考資料:
https://www.it-swarm.net/zh/iis/%E6%97%A0%E6%B3%95%E5%9C%A8iis7%E4%B8%8A%E6%89%BE%E5%88%B0codedom-provider/823464748/
https://stackoverflow.com/questions/20545224/web-application-build-error-the-codedom-provider-type-microsoft-visualc-cppcode/20963170#20963170
0 意見:
張貼留言