【发布时间】:2010-05-26 17:36:33
【问题描述】:
我正在尝试创建一个使用 AppCmd 应用程序配置 IIS7 的 MSI 包。它只需要执行一些调用 AppCmd 的命令。安装时需要调用一些命令,卸载时需要调用其他命令。
这是我现在拥有的:
我有一个指向 AppCmd 的属性:
<Property Id="APPCMD" Value="C:\Windows\system32\inetsrv\appcmd.exe" />
我有我的自定义操作:
<CustomAction Id="UnlockHandlerSection" Return="check" Property="APPCMD" ExeCommand="unlock config /section:system.webServer/handlers" />
我有调用动作的自定义元素:
<InstallExecuteSequence>
<Custom Action="UnlockHandlerSection" After="InstallFiles">NOT Installed AND NOT PATCH</Custom>
<InstallExecuteSequence>
问题在于,当我尝试安装生成的 MSI 包时,没有调用这些命令。如果我记录安装,则日志本身并没有很多信息。我不想发布整件事,但它的结尾是这样的:
MSI (c) (50:34) [12:35:47:703]: Product: Server Configuration 1.0.0 -- Installation failed.
MSI (c) (50:34) [12:35:47:703]: Windows Installer installed the product. Product Name: Server Configuration 1.0.0. Product Version: 1.0.0. Product Language: 1033. Installation success or error status: 1603.
另外,就在我的 APPCMD 属性初始化之前,这是打印的(这里的返回值是否正确?):
Action ended 12:35:47: ExecuteAction. Return value 3.
Action ended 12:35:47: INSTALL. Return value 3.
Property(C): APPCMD = C:\Windows\system32\inetsrv\appcmd.exe
谁能告诉我我做错了什么?谢谢!
【问题讨论】:
-
您在调试日志中看到了什么?
msiexec /i your-installer.msi /l* debug.log -
我已经用这些信息更新了我的问题。如果您认为更多日志信息可能会有所帮助,请告诉我您希望看到的内容。
-
一般来说,从您的 CustomAction 开始到结束的部分(即在日志文件中查找 UnlockHandlerSection),以及导致第一个
Return value 3的任何诊断行是最有用。最后一个Return value 3只是一个总结。
标签: wix windows-installer