InstallShield打包.NET5 WinExe项目时apphost.exe未正确重命名问题
解决方案
方法1:修改.NET项目配置(推荐,从根源解决问题)
直接调整MyMainProject的项目配置,让发布输出直接生成正确命名的可执行文件,无需依赖InstallShield的解析逻辑:
- 右键点击MyMainProject项目,选择「编辑项目文件」,在顶层
<PropertyGroup>节点中添加如下配置:
<!-- 显式指定apphost生成后的文件名 --> <AppHostName>MyMainProject.exe</AppHostName> <!-- 确保发布时所有依赖都被正确复制到输出目录 --> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
- 保存项目文件后重新生成项目,再重新构建InstallShield安装包即可。
方法2:在InstallShield中手动配置重命名规则
如果你不想修改.NET项目配置,可以直接在InstallShield中强制指定文件重命名规则:
- 打开InstallShield项目的「文件(Files)」视图,定位到PublishItemsOutputGroup对应的目标安装目录,找到
apphost.exe文件 - 右键点击该文件,选择「重命名(Rename)」,直接修改为
MyMainProject.exe,该配置会被持久化到InstallShield项目中,构建时自动生效 - 如果你需要批量修改多个文件,也可以进入「直接编辑器(Direct Editor)」视图,找到
File表,定位到apphost.exe对应的行,将FileName字段的值修改为MyMainProject.exe即可
备选方案:手动添加发布输出
如果上述两种方法都不生效,可以放弃引用PublishItemsOutputGroup,手动将本地发布生成的包含MyMainProject.exe的完整输出目录添加到InstallShield的文件列表中,该方式稳定性最高。
内容的提问来源于stack exchange,提问作者Dialecticus
相关产品推荐
相关产品推荐

