从2005年将解决方案转换为vs2008后,我的msi开始表现不同。
并非所有的dll都被写入了,如果我从另一个进程启动msi(使用createProcess)它会失败(说smt就像'一个包返回了一个意外的值')并且安装回滚。
我知道这是一个常见的问题,解决方案是:
我尝试使用解决方案2,但令我惊讶的是,当我使用devenv进行构建时,我会遇到各种构建错误(我在巡航控制中使用devenv,在visual studio中使用msbuild都很好。)
现在我将尝试使用解决方案1 - 但我很欣赏有关替代解决方案的任何建议/想法。
答案 0 :(得分:0)
一个起点是理解它为什么表现不同,也许你可以尝试详细记录(从Wikipedia's Windows Installer entry抓取):
命令行:如果从命令行安装MSI软件包,可以使用/ L开关启用日志记录。例如,以下命令安装Package.msi并将详细日志记录输出到c:\ Package.log:
msiexec /i Package.msi /l*v c:\Package.log
Windows注册表:以下注册表值可用于启用详细日志记录:
Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
Value Name: Logging
Type: REG_SZ
Data: voicewarmupx
其他值得尝试的事情: