c# - 在包含 csc.exe 文件的 smarterasp.net 上发布网站时出现问题?

标签 c# asp.net visual-studio-2015

我使用的是 Microsoft Visual Studio 2015,我使用 C# 联系表构建了一个简单的网站。 当我在本地主机上编译并运行时,它工作得很好。但是,当我尝试发布它(在 smarterasp.net 上)时,出现错误:

[Win32Exception (0x80004005): Access is denied]

[ExternalException (0x80004005): Cannot execute a program. The command being executed was "..\bin\roslyn\csc.exe"

我已经联系了 smarterasp.net,他们说他们不允许 .exe 文件。我尝试使用 ftp 从服务器删除 csc.exe,但是当我这样做时出现错误:

Could not find file "..\bin\roslyn\csc.exe".

如何使用试图包含在我的项目中的 csc.exe 来解决这个问题,以便发布我的网站?

最佳答案

经过数小时的研究,我想出了解决方案。

从.NET 4.5版本开始,Roslyn编译是默认的编译方式。这意味着,如果您使用 .NET 4.5 创建任何 Web 应用程序,无论是 Web Forms 还是 MVC,您都会在项目中预安装此 Roslyn csc.exe 编译。

基本上我需要的是在没有 Roslyn 或任何 .exe 文件的情况下编译和部署我的项目。

这是对我有用的解决方案。您可以在不更改代码的情况下不使用 Roslyn 进行部署:

  1. 打开 NuGet 包管理器窗口
  2. 卸载 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 包并重建和重新发布。 (此卸载还会从 web.config 文件中删除 CodeDom 配置。)

这将解决您的目的。基本上这不会在 bin 文件夹中生成任何 csc.exe、vbc.exe 文件。

希望对你也有用!

关于c# - 在包含 csc.exe 文件的 smarterasp.net 上发布网站时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184429/

相关文章:

c# - Assert.AreNotEqual 和 Assert.AreNotSame 之间有什么区别?

visual-studio-2015 - Visual Studio 2015 错误列表仅显示打开文件的错误

c# - 由于 Intellisense 错误而无法发布

c++ - 如何在 Visual Studio Community 2015 中创建 "ATL Project"?

c# - 使用 Android 设备在谷歌浏览器中打开 URL

c# - 如何转换ascii字符串中的位序列c#

java - C# 服务器和 Java 客户端 TCP

asp.net - 从复选框列表在 VB.net 中创建 SQL 查询

c# - 枚举正确存储在数据库中,但未在 C# 中正确反序列化为类型

.net - ASP.NET——如何在不过度设计的情况下有效地使用设计模式!