0

インストーラーの作成にWiX3.5を使用していますが、多くのファイルとフォルダーをコピーする必要があります。これを行うためにheat.exeを使用しましたが、正常に動作しています。しかし、インストール中にbatファイルを呼び出す必要があり、batファイルは上記のフォルダーにあります。そのbatファイルは他のいくつかのファイルに依存しています。バッチファイルを呼び出すことはできますが、その時点で他のファイルはロードされていません。以下は、batファイルを実行するために使用しているカスタムアクションです。

<Custom Action="InstallFeature" After="InstallFinalize"><![CDATA[
    (&TypicalFeature=3) AND NOT(!TypicalFeature=3)
]]></Custom>

ヘルプが必要です。batファイルを呼び出した後にファイルが読み込まれている可能性があります。

ありがとうRaviS

4

1 に答える 1

3

MSIからバッチファイルを呼び出すことは、本当に悪い考えです。MSIは宣言型です。インストールが成功したときにシステムがどのように表示されるかを定義するだけで、問題が発生した場合、MSIは変更をロールバックできます。

ただし、バッチファイルを使用すると、Windowsインストーラーはシステムにどのような変更が加えられたかを認識せず、何もロールバックできません。

バッチファイルが何をしているのかを調べ、WiXで、または対応するロールバックアクションを使用してC ++ / C#のカスタムアクションを介して、バッチファイルが何をしているのかを実装します。(ネイティブコードが最適ですが、難しいです。マネージコードは次善の策であり、VBScriptは最後の手段ですが、バッチファイルよりも優れています)

于 2012-08-14T02:18:56.957 に答える