2013-02-06 81 views
1

我已經閱讀了很多互聯網上的例子,但是我弄不清楚會出現什麼問題。我有一個WiX安裝程序,可以在安裝時將所有MySQL服務器文件複製到某個位置。然後我想在安裝結束之前運行MySQLInstanceConfig.exe。WiX自定義操作,運行EXE,錯誤代碼1721

<CustomAction Id="CAConfigureMySqlInstance" 
       Directory="dir96BE76D0898DC48E62BC8465D43A5949" 
       Impersonate="no" 
       Execute="commit" 
       ExeCommand="[dir96BE76D0898DC48E62BC8465D43A5949]MySQLInstanceConfig.exe" 
       Return="check" 
/> 

<InstallExecuteSequence> 
    <Custom Action='CAConfigureMySqlInstance' After='InstallFiles' /> 

    <!-- See this for Before/After sequence moments: http://msdn.microsoft.com/en-us/library/windows/desktop/aa371199(v=vs.85).aspx --> 

</InstallExecuteSequence> 

我認爲After='InstallFiles'真的畢竟是文件已在安裝程序的正確的位置被投入。現在我看到進度條進入安裝程序中的「複製新文件」。然後,我收到一條消息:「此安裝所需的程序無法運行」。當我看日誌文件,我看到:

MSI(S)(54:94)[14:14:32:886]:注:1:1721 2:CAConfigureMySqlInstance 3:C:\程序文件(x86)\ MyCompnay \的MySQL \ MySQL服務器5.5 \ BIN \ 4:C:\ Program Files文件(x86)的\ MyCompany的\的MySQL \ MySQL服務器5.5 \ BIN \ MySQLInstanceConfig.exe

每當我複製'Run(Windows + R)'中的路徑,運行MySQL配置器!所以路徑是正確的。所以我得出結論,在錯誤的時刻,文件已被複制到該位置!錯誤代碼是1721

每當我改變ExeCommandC:\Windows\Explorer.EXE C:\SomeDirIKnowWindows Explorer啓動......所以自定義操作比較合適......

我該如何解決這個問題?

回答

5

我運行它

<CustomAction Id="CAConfigureMySqlInstance" 
       Directory="dir96BE76D0898DC48E62BC8465D43A5949" 
       Impersonate="no" 
       Execute="deferred" 
       ExeCommand='"[dir96BE76D0898DC48E62BC8465D43A5949]MySQLInstanceConfig.exe"' 
       Return="check" 
/> 

<InstallExecuteSequence> 
    <Custom Action='CAConfigureMySqlInstance' Before='InstallFinalize' /> 
    <!-- See this for Before/After sequence moments: http://msdn.microsoft.com/en-us/library/windows/desktop/aa371199(v=vs.85).aspx --> 
</InstallExecuteSequence> 

注用引號ExeCommand='" =>即單,雙,EXE,雙,單的位置。

可笑!花了1個多小時!