【问题标题】:How to pack a installation (framework + application) in one executable?如何将安装(框架+应用程序)打包在一个可执行文件中?
【发布时间】:2012-03-14 16:04:07
【问题描述】:

我想创建一个文件“setup.exe”,其中包含我用 C# 开发的一个应用程序以及 .Net framework 4.0 的设置。

想法是:当我执行“setup.exe”时,这个会检查计算机上是否安装了.net framework 4.0,如果不安装!

使用 InstallShield 2009。

有人知道怎么做吗?

如果有什么不明白的请告诉我。

谢谢。

【问题讨论】:

    标签: c# .net frameworks installshield installshield-2009


    【解决方案1】:

    关于设置,您可以使用 Visual Studio 附带的内置机制,例如,它们允许 setup.exe 自动检查是否安装了所需的框架版本,如果不存在则安装它 - 为了一个好的开始,请参阅 @ 987654321@.

    关于使您的应用程序/EXE 包含 1 个文件,包括所有托管依赖项,您有多种选择:

    • 使用SmartAssembly(商业)等工具
      它可以嵌入和合并其他内容(无需更改源代码)

    • code that yourself in less than 10 lines(免费但最小的源代码更改)
      将所有需要的依赖项标记为“嵌入式资源” - 这样它们就包含在 EXE 文件中......您需要设置一个 AssemblyResolve 处理程序,该处理程序在运行时从资源中读取并将所需的 DLL 返回给 .NET 运行时......

    【讨论】:

      【解决方案2】:

      有许多用于创建设置的框架。
      我最喜欢的是 WIX,你可以从这里下载:http://wix.sourceforge.net/
      还有一个使用 C# 创建 WIX 接口的框架,称为 sharpsetup,您可以从这里下载它:http://sharpsetup.eu/ 但我不确定它是否适合您的需求,因为目标机器可能没有 .NET 开始(虽然可能可以在 .NET 2.0 中编写设置,我不确定)。

      学习 WIX 可能需要一些时间,但是一旦您完成了这些,就应该按照自己的意愿去做。

      【讨论】:

        【解决方案3】:

        将您的完整(拆分)设置打包到自解压器中是否可行?您可以使用 WinRar 或类似工具来构建带有“自动运行”的压缩 exe。

        【讨论】:

        • 这个提取器将是一个“.exe”文件,当我单击执行时它会提取所有文件并开始安装?
        • 是的。您可以指定自解压时要运行的程序。 WinRar 是我想到的第一个自解压器,但我相信你会找到 1000
        • 使用winrar,我该怎么做?
        • 创建一个 WinRar 存档(例如打开 WinRar 并拖放)。单击工具栏中的 SFX 按钮。点击高级音效选项。设置您需要的任何内容(您可能需要许多选项来自定义其行为,在 Setup 选项卡中您可以指定要自动运行的程序)。
        • 感谢您的帮助,但这不是我老板想要的... :@ 无论如何,谢谢。
        【解决方案4】:

        据我所知,标准的 InstallShield 2009 是不可能的。您必须至少拥有 InstallShield 2010(带有适用于 Visual Studio 2010 的 Installshield 2010 扩展包)。

        我不知道是否有办法“破解”它...

        【讨论】:

          【解决方案5】:

          我解决了这个问题,创建了一个自定义操作,这将是“打开可执行文件”类型,我在向导的按钮事件中调用了这个自定义操作。

          【讨论】:

            猜你喜欢
            • 2011-11-29
            • 2011-03-31
            • 2017-08-11
            • 2016-07-30
            • 1970-01-01
            • 1970-01-01
            • 2015-09-26
            • 1970-01-01
            相关资源
            最近更新 更多