发布网站没有roslyn

我正在尝试使用Visual Studio 2015和.NET 4.5.1来创buildWeb应用程序。 当我发布网站时,visual studio创build一个名为roslyn文件夹。

在这里输入图像说明

我知道这是用来编译代码,但不幸的是我的主机提供商不允许我在他们的服务器上执行编译器。

如何发布没有像以前版本的Visual Studio roslyn的网站?

编辑:我试图访问我的网站时,出现此错误。

在这里输入图像说明

它似乎IIS试图执行roslyn\csc.exe但我的用户帐户没有权限做到这一点。 使用以前版本的Visual Studio,此错误不显示。

我刚刚面临同样的问题。 当你创build一个新的web项目时,两个nuget包会自动添加到你的项目中。 如果你删除它们,你的问题应该被解决。 包名称是:“ Microsoft.CodeDom.Providers.DotNetCompilerPlatform ”和“ Microsoft.Net.Compilers ”。

我遇到过同样的问题。 按照从这里的步骤。 基本上:

  1. 卸载软件包

     Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name> 
  2. 在发布configuration文件设置中,取消选中“允许预编译的网站可更新”。 您可以在发布>configuration期间的设置>预编译下find它

关于这个问题在roslyn存储库上有一个开放的错误 。

在我的情况下,我所要做的就是将Microsoft.CodeDom.Providers.DotNetCompilerPlatform1.0.6版降级到1.0.5

我search了同样的发行版本后,我才来到这里。 我读了上面的答案是正确的。

我给出的答案,因为这里是很好的文章来解释:

  1. 为什么发布代码有这个EXE以及开发环境?
  2. 什么是好处和如何删除?

这也是非常好的文章,关于这个EXE的历史

当我接pipe现有的ASP.NET程序时,我在2016年9月遇到了同样的问题。 我发现在解决scheme的不同项目中安装了Kemal提到的两个编译器软件包的多个版本。

所以首先我更新了他们一样。 VS并没有告诉你,在这种情况下可用的更新(或者我错过了?)

然后我必须重新启动VS2015才能正确清理软件包。

经过无数的努力….并根据这个网站 。 我发现你可以在MSBuild中使用/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false来转换web.config,这也包括在编译中的roslyn编译器。 输出与在Visual Studio中发布到文件系统中的结果相同