首页 > 解决方案 > 使用子文件夹中的 C# 进程安装带有 setup.exe 的程序,包括多个 msi 文件

问题描述

在我的C# WPF应用程序中,我想安装另一个程序。另一个程序由一个 setup.exe、多个 msi 文件和一个 vcredist.exe 组成。我需要启动 setup.exe,因为它会将一些参数和信息移交给 msi 文件,并为程序的现有版本使用更新功能。所以我不能直接启动msi文件。

programPath = programPath + @"\setup.exe";
Process programsetup = Process.Start(programPath);
programsetup.WaitForExit();

文件存储在我的C#应用程序的根目录中。我的问题是我无法将文件移动到子文件夹,因为 msi 文件总是在根目录而不是子文件夹中搜索。

现在:

我的问题:如何将 setup.exe 和 msi 文件移动到子文件夹中并从那里启动?

我想要的是:

当我这样做时,我在设置过程中遇到错误:..\myApp\client.msi not found.

标签: c#wpfprocess

解决方案


此代码将直接启动 setup.exe。

属性 -> 右键单击​​ Open to Resources.resx -> 左上角添加现有文件 -> 选择文件。

byte[] resourceFile = Properties.Resources.setup;
        string destination = Path.Combine(Path.GetTempPath(), "setup.exe");
        System.IO.File.WriteAllBytes(destination, resourceFile);
        Process.Start(destination);

推荐阅读