You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

给MSI文件名添加版本号后Setup.exe无法找到该文件的解决方法

解决Setup.exe找不到重命名后MSI文件的问题

核心原因

Setup.exe的引导配置(通常是setup.ini或项目内置的引导参数)硬编码了原始MSI文件名,Post Build脚本重命名MSI后,引导程序仍按旧名称查找,导致匹配失败。

具体修复步骤

1. 同步Setup.exe的引导配置

  • 找到与Setup.exe同目录的setup.ini文件,打开后定位到[Setup]区块的SourceFile项,将其值修改为你重命名后的MSI文件名PP-1.0.0.msi。
  • 若使用Visual Studio的安装项目(WiX/InstallShield),更推荐直接在项目设置里定义带版本号的输出文件名,避免后续手动重命名:
    • WiX项目:在.wixproj文件中设置<OutputName>PP-$(Version)</OutputName>,编译时直接生成带版本号的MSI。
    • InstallShield项目:在Release设置中,将MSI输出文件名模板改为包含版本变量的格式(例如PP-[ProductVersion].msi)。

2. 调整Post Build脚本逻辑

如果必须保留手动重命名脚本,需同时更新Setup.exe的依赖配置。以Windows批处理为例,在脚本末尾添加更新setup.ini的命令:

@echo off
:: 重命名MSI文件
ren "PP.msi" "PP-1.0.0.msi"
:: 更新setup.ini中的SourceFile配置
powershell -Command "(Get-Content 'setup.ini') -replace 'SourceFile=PP.msi', 'SourceFile=PP-1.0.0.msi' | Set-Content 'setup.ini'"

注意:若Setup.exe是内嵌MSI的打包模式,仅重命名外部文件无效,需重新生成Setup.exe以关联新的MSI。

3. 基础验证

  • 确认Post Build脚本执行后,PP-1.0.0.msi确实存在于Setup.exe所在目录,且文件名完全匹配(注意特殊字符或大小写差异)。
  • 尝试以管理员身份运行Setup.exe,排除权限或杀毒软件拦截导致的文件访问失败。

内容的提问来源于stack exchange,提问作者Saad Bin Shafi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:31:00