1

我需要使用 Visual Studio 构建一个 .msi 文件,该文件将执行一些我在 .bat 中具有自定义操作的命令。我知道我可以通过进入 .msi 并更改表格来实现这一点,我已经让它工作了,但这只是一个简短的修复,我需要让它工作。特别是我想在卸载时执行我的自定义操作。

我尝试的第一件事是编写一个名为.bat 的.exe。它可以独立工作,但是每当我将文件放入文件系统并让自定义操作运行 .exe 时,它​​就无法正常工作。谁知道为什么。。

我做的另一件事是让自定义操作使用 cmd.exe 和我的 .bat 作为参数。我在卸载过程中遇到错误,事件查看器使用 /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 回答