如何发布ASP.NET MVC .NET Core 3.1应用且不生成exe可执行文件
解决方案
核心原理
.NET Core 发布生成的exe是宿主启动器文件,仅用作程序入口,核心业务逻辑全部存储在同名dll文件中,禁用exe生成不会影响程序正常功能。
方法1:修改项目文件全局配置(永久生效)
在你的ASP.NET MVC项目的.csproj文件中,加入UseAppHost配置节点即可全局禁用exe生成:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <!-- 加入这一行禁用宿主exe生成 --> <UseAppHost>false</UseAppHost> </PropertyGroup> </Project>
保存后重新发布,产物中就不会出现exe文件。
方法2:命令行发布时临时指定(无需修改项目)
如果仅本次发布需要禁用exe,可在发布命令中添加参数:
dotnet publish -c Release /p:UseAppHost=false
如果需要指定运行时,补充-r参数即可:
dotnet publish -c Release -r win-x64 /p:UseAppHost=false
方法3:Visual Studio 图形界面发布配置
如果你使用VS可视化发布工具,按以下步骤操作:
- 打开你的发布配置页,点击「编辑」按钮进入配置编辑界面
- 切换到「设置」选项卡,展开「高级设置」分组
- 取消勾选「生成宿主可执行文件」选项
- 保存配置后重新发布即可
补充说明
禁用exe生成后,程序启动方式调整为执行dotnet 你的项目名.dll命令即可,功能与exe启动完全一致。共享主机环境一般已预安装.NET Core 3.1运行时,无需额外配置即可正常运行。
内容的提问来源于stack exchange,提问作者Nikhil Mittal
相关产品推荐
相关产品推荐

