我使用的是 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 进行部署:
- 打开 NuGet 包管理器窗口
- 卸载 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 包并重建和重新发布。 (此卸载还会从 web.config 文件中删除 CodeDom 配置。)
这将解决您的目的。基本上这不会在 bin 文件夹中生成任何 csc.exe、vbc.exe 文件。
希望对你也有用!
关于c# - 在包含 csc.exe 文件的 smarterasp.net 上发布网站时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184429/