Visual Studio中Asp.NET Web Forms发布时Roslyn生成exe改dll方案咨询
解决Asp.NET Web Forms发布后Roslyn文件夹生成.exe文件的问题
针对你遇到的Roslyn文件夹下生成.exe文件导致托管服务商不接受的问题,可尝试以下几种解决方案:
1. 移除Roslyn相关NuGet包
Roslyn的.exe文件来自Microsoft.CodeDom.Providers.DotNetCompilerPlatform这个NuGet包,它会在发布时将Roslyn编译器工具打包到项目中。你可以直接卸载该包:
- 在NuGet包管理器控制台执行:
Uninstall-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
卸载后,项目会自动回退到使用传统的CodeDom编译器,发布时将不再生成Roslyn文件夹及其中的.exe文件。
2. 修改发布配置禁用Roslyn编译
如果需要保留Roslyn的部分功能但不想生成.exe文件,可在发布配置中添加禁用选项:
- 打开项目的发布配置文件(
*.pubxml,位于Properties\PublishProfiles目录下),在<PropertyGroup>节点内添加:<UseRoslynCompiler>False</UseRoslynCompiler> - 保存配置后重新发布项目。
3. 检查并修改项目文件(.csproj)配置
手动打开项目的.csproj文件,查找并调整以下相关配置:
- 删除包含
DotNetCompilerPlatformVersion的节点 - 添加
<UseRoslynCompiler>False</UseRoslynCompiler>到<PropertyGroup>节点中
4. 清理并重新发布
- 执行
清理解决方案操作,清除旧的编译缓存文件 - 重新生成项目,再执行发布流程,确保所有旧的Roslyn相关文件被彻底移除
内容的提问来源于stack exchange,提问作者mactavish
相关产品推荐
相关产品推荐

