私はインターネットで多くの例を読みましたが、何が悪いのか理解できません。インストール時にすべてのMySQLサーバーファイルを特定の場所にコピーするWiXインストーラーがあります。次に、セットアップが終了する前にMySQLInstanceConfig.exeを実行します。
<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:\ Program Files(x86)\ MyCompnay \ MySQL \ MySQL Server 5.5 \ bin \ 4: C:\ Program Files(x86)\ MyCompany \ MySQL \ MySQL Server 5.5 \ bin \ MySQLInstanceConfig.exe
'Run(Windows + R)'でそのパスをコピーするたびに、MySQL configuratorが実行されます!したがって、パスは正しいです。したがって、エラーの瞬間に、ファイルはすでにその場所にコピーされていると結論付けます。エラーコードは1721です。
に変更するたびにExeCommand
、C:\Windows\Explorer.EXE C:\SomeDirIKnow
Windowsエクスプローラーが起動します...したがって、カスタムアクションはほぼ正しいようです...
この問題を解決するにはどうすればよいですか?