我一直在浏览网页几个小时,现在正在寻找我的问题的答案。我正在尝试使用VS2017在Azure Web App Service上部署Web API。一切都在本地运行时构建和工作正常但是一旦部署在Azure上(通过VS2017)我就会收到此错误:
d:\家\站点\ wwwroot的\ BIN \罗斯林\ CSC.EXE
我的项目是ASP.NET Web应用程序(使用Azure Web API模板).NET Framework 4.6.1。我使用Microsoft.CodeDom.Providers.DotNetCompilerPlatform Version=1.0.6.0
我还确保csc.exe位于:
Visual Studio 2017\Projects\DeviceManagementAPI\DeviceManagementAPI\bin\roslyn
答案 0 :(得分:3)
遇到了同样的问题,似乎是known issue Microsoft.CodeDom.Providers.DotNetCompilerPlatform
1.0.6 且 1.0.7 。
降级为 1.0.5 解决了这个问题。
答案 1 :(得分:0)
过了一会儿,我只是通过Kudu手动将roslyn文件直接上传到服务器中。它似乎解决了这个问题,但我仍然不知道为什么它不会自动上传。
答案 2 :(得分:0)
将Microsoft.CodeDom.Providers.DotNetCompilerPlatform升级到1.08对我有用
答案 3 :(得分:0)
同一问题可能是由于缺少或不正确的相对包路径引起的。如果您要更改解决方案文件夹结构,请确保所有导入都具有正确的路径,以避免错过 Roslyn 文件。
通常建议用参数替换自动生成的../../../packages/...
rabit hole,这将指向正确的 Nuget 文件夹。
<Import Project="$(NugetPackagesPath)\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('$(NugetPackagesPath)\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />