1

Visual Studio を使用して、カスタム アクションで .bat にあるいくつかのコマンドを実行する .msi ファイルを作成する必要があります。.msi に移動してテーブルを変更することでこれを達成できることはわかっていますが、これは機能するようになりましたが、これは簡単な修正であり、これを機能させる必要があります。特に、アンインストール時にカスタム アクションを実行したいと考えています。

最初に試したのは、.bat を呼び出す .exe を作成することでした。スタンドアロンで動作しますが、ファイルをファイル システムに配置し、カスタム アクションで .exe を実行すると、動作しません。誰が理由を知っています..

私が行ったもう1つのことは、カスタムアクションで.batを引数としてcmd.exeを使用することでした。アンインストール中にエラーが発生し、イベント ビューアーは /c "[TARGETDIR]batfile.bat を使用して cmd.exe に絞り込みます https://stackoverflow.com/a/6286046/1427105と非常によく似ています。

私を助けることができる考えはありますか?

4

1 に答える 1

2

このようなものはどうですか?

protected override void OnBeforeUninstall(IDictionary savedState)
{
    base.OnBeforeUninstall(savedState);

    string assemblyPath = Context.Parameters["assemblypath"];
    string parentDirectory = Directory.GetParent(assemblyPath).FullName;
    string batch = Path.Combine(parentDirectory, "batfile.bat");
    Process p = Process.Start(batch);

    while (!p.HasExited)
        Thread.Sleep(1000);
}
于 2012-06-05T00:33:48.497 に答える