c# - Windows 安装程序和安装应用程序合并到一个文件中?

标签 c# visual-studio-2010 windows-installer installation

我使用 Visual Studio 用 C# 编写了一个应用程序,我创建了一个项目设置文件,该文件在我的调试中为我创建了文件。

Windows Installer 和安装应用程序都是必需的,但我想将它们合并为一个,就像当您下载一个应用程序时,安装程​​序只是一个文件。

有人可以告诉我如何做到这一点,或者只是向我指出一个好的来源。

enter image description here

提前致谢。

最佳答案

如果您使用 Visual Studio 的内置安装项目模板来生成安装程序,则根本不需要 setup.exe 文件。

您唯一需要分发的是.msi 文件。其中包含用户安装您的应用程序所需的一切。 setup.exe 文件只是一个 stub ,它根据 .msi 文件中的信息启动安装例程,该文件是 Windows Installer 用于安装应用程序的数据库。而且,由于如果安装了 Windows Installer 服务,则可以通过双击这些文件来启动它们,因此如果您不想,则实际上不需要分发 setup.exe Bootstrap 。

您可能想要分发 setup.exe 文件的一些特殊原因是:

  • 由于某种原因,您预计您的用户可能没有在其计算机上安装所需版本的 Windows Installer。如今,这种情况变得相当罕见,特别是考虑到宽带互联网连接的广泛性以及操作系统供应商在插入自动更新方面的积极性。但是,如果您的用户“断开连接”(在很多意义上),您可能需要使用安装可执行文件来验证是否存在必要版本的 Windows Installer,如果不存在则安装它,然后启动您的 .msi 文件来执行安装。 (如果未安装 Windows Installer,则无法运行 .msi 文件。)

  • 您需要支持多种语言。在这种情况下,setup.exe 文件可以在启动安装程序之前对 .msi 文件执行语言转换。

  • 您想要按顺序管理多个 .msi 文件的安装。 Windows Installer 的设计方式很难链接 .msi 文件的安装,这使得在安装自己的应用程序文件之前或之后安装依赖项变得困难。 setup.exe 文件不受 Windows Installer 的限制,因此可用于链接这些文件并精确管理安装顺序。

  • 一般来说,创建您自己的 setup.exe 文件(或使用众多第三方安装程序软件包之一为您创建)可以为您提供更大的灵 active 。您基本上可以完全控制安装过程,而不必遵循 Windows Installer 的规则。

但 83.44% 的情况下,这是不必要的,您应该遵循使用 .msi 文件的更简单的路线。这还允许系统管理员跨他们管理的计算机(例如,整个公司网络)自动安装,这是原始可执行文件不支持的。

关于c# - Windows 安装程序和安装应用程序合并到一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644097/

相关文章:

c# - 将数字映射到字母

c# - 有没有一种工具可以将 C# 部分类文件重新组装成一个类源代码文件?

c - MsVc++奇怪的错误: not declared variable

c++ - 将 VS 移植到 linux : no matching function for call to

mysql - 高级安装程序 - 如何在安装过程中创建 MySQL 用户?

c# - 多线程 'fixed'

c# - I扩展 : extensible object pattern : How does it work?

c++ - Visual C++ 2010 Beta 2 上的复制省略

installation - 如何使用 NSIS 制作更新安装程序?

installation - 如何通过 .msi 包修改 machine.config