2010-05-26 76 views
2

我試圖創建一個使用AppCmd應用程序來配置IIS7的MSI軟件包。它只需要執行一些調用AppCmd的命令。安裝時需要調用一些命令,卸載時需要調用其他命令。如何創建一個MSI軟件包,它不安裝任何文件,只使用Wix執行一些命令

這是我現在有:

我有一個指向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 

任何人都可以請我告訴我我做錯了什麼?謝謝!

+0

你在調試日誌中看到了什麼? 'msiexec/i your-installer.msi/l * debug.log' – 2010-05-26 17:54:25

+0

我已經用這些信息更新了我的問題。如果您認爲更多日誌信息可能會有所幫助,請告訴我您希望看到的內容。 – Sevas 2010-05-27 11:43:39

+0

一般而言,從CustomAction的每個開始到結束的部分(即查找日誌文件中的UnlockHandlerSection)以及導致第一個「返回值3」的任何診斷外觀的行是最有用的。最後一個「返回值3」只是一個總結。 – 2010-05-27 13:35:34

回答

2

解決的辦法是添加一個空的部件:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Component Id="EmptyComponent" Guid="*" /> 
</Directory> 

的下一個步驟是包括在一個功能,空組件:

<Feature Id="Feature" Title="Feature" Level="1"> 
    <ComponentRef Id="EmptyComponent" /> 
</Feature> 

加入這兩個比特之後,將命令稱爲正確。

相關問題