【问题标题】:How to manually create an installer in visual c#如何在 Visual C# 中手动创建安装程序
【发布时间】:2013-11-12 17:48:08
【问题描述】:

在用户可以使用我的程序之前,我需要安装 2 个程序,我想创建一个程序来按顺序运行这两个程序。我知道这可以是一个批处理脚本,但我希望安装程序有一个 gui,它应该在其中设置一些初始设置,比如安装路径等。创建我可以做的程序,我只是不知道如何将这两个程序添加到我的安装程序中。最后我只想分发一个安装程序而不是三个安装程序。

如何将这两个可执行文件添加到我的安装程序中?

【问题讨论】:

  • 请记住:如果您从头开始编写自己的安装程序,它仍然只有在已安装 .NET-Framework 时才能工作。
  • 谢谢,会记住的

标签: c# installation


【解决方案1】:

我个人很喜欢 NSIS。已经有很多示例说明如何安装 .NET,然后在一次安装中安装您自己的一个或多个程序。它有自己的脚本语言,所以不是用 C# 编写的,但是作为使用过其他基于 MSI 的方法的人,NSIS 要简单得多。 MSI 是一个巨大的痛苦(但我认为 WIX 之类的东西更简单,但 MSI 有很多陷阱)。

您甚至可以让 NSIS 运行一个 C# 应用程序,该应用程序在 .NET 和应用程序本身安装后执行一些额外的安装步骤(或者可能只是将 C# 完成安装程序解压缩到一个临时目录。)

您可以将可执行文件作为资源包含在 C# 应用程序中,然后将它们写出来,但是让 NSIS 打包它们并为您提取它们会更简单并且可能更快,然后您可以做任何您需要做的事情它们在您的 C# 安装程序中。

除了尝试解决 .NET 依赖问题之外,您会发现自己可能会做很多 NSIS 已经涵盖的事情。

【讨论】:

    【解决方案2】:

    您可以使用WiX ToolSet。它有很多样本。

    【讨论】:

      【解决方案3】:

      如果我理解...您已经准备好并运行 C# 安装程序(没有 MSI 或其他安装技术),现在您需要将这些额外的 exe 程序添加到该安装程序中吗?

      如果是这种情况,您需要将这些程序作为嵌入式资源嵌入,然后您可以在安装主程序之前将它们提取并按所需顺序执行。

      这里有一些关于如何使用二进制嵌入资源的信息:

      Embedding an external executable inside a C# program

      http://www.cs.nyu.edu/~vs667/articles/embed_executable_tutorial/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多