Azure Web Deploy“无法找到路径的一部分'D:\ home \ site \ wwwroot \ bin \ roslyn \ csc.exe'。”

时间:2017-08-09 21:32:08

标签: azure asp.net-web-api visual-studio-2017 roslyn

我一直在浏览网页几个小时,现在正在寻找我的问题的答案。我正在尝试使用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

4 个答案:

答案 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')" />