在用户可以使用我的程序之前,我需要安装 2 个程序,我想创建一个程序来按顺序运行这两个程序。我知道这可以是一个批处理脚本,但我希望安装程序有一个 gui,它应该在其中设置一些初始设置,比如安装路径等。创建我可以做的程序,我只是不知道如何将这两个程序添加到我的安装程序中。最后,我只想分发一个安装程序而不是三个安装程序。
如何将这两个可执行文件添加到我的安装程序?
在用户可以使用我的程序之前,我需要安装 2 个程序,我想创建一个程序来按顺序运行这两个程序。我知道这可以是一个批处理脚本,但我希望安装程序有一个 gui,它应该在其中设置一些初始设置,比如安装路径等。创建我可以做的程序,我只是不知道如何将这两个程序添加到我的安装程序中。最后,我只想分发一个安装程序而不是三个安装程序。
如何将这两个可执行文件添加到我的安装程序?
如果我理解...您已经准备好并运行 C# 安装程序(没有 MSI 或其他安装程序技术),现在您需要将这些额外的 exe 程序添加到该安装程序中,对吗?
如果是这种情况,您需要将这些程序作为嵌入式资源嵌入,然后您可以在安装主程序之前提取它们并按所需顺序执行。
这里有一些关于如何使用二进制嵌入资源的信息:
http://www.cs.nyu.edu/~vs667/articles/embed_executable_tutorial/
我个人很喜欢 NSIS。已经有很多示例说明如何安装 .NET,然后在一次安装中安装您自己的一个或多个程序。它有自己的脚本语言,所以不是用 C# 编写的,但是作为使用过其他基于 MSI 的方法的人,NSIS 要简单得多。MSI 是一个巨大的痛苦(但我认为 WIX 之类的东西更简单,但 MSI 有很多陷阱)。
您甚至可以让 NSIS 运行一个 C# 应用程序,该应用程序在 .NET 和应用程序本身安装之后执行一些额外的安装步骤(或者可能只是将 C# 完成安装程序提取到临时目录。)
您可以将可执行文件作为资源包含在 C# 应用程序中,然后将它们写出来,但是让 NSIS 打包它们并为您提取它们会更简单,可能更快,然后您可以在您的完成 C# 安装程序。
从头开始编写,除了尝试解决 .NET 依赖问题之外,您会发现自己可能会做很多 NSIS 已经涵盖的事情。
You can use WiX ToolSet. It has a lot of samples.