我已经使用 Visual Studio 在 C# 中编写了一个应用程序,我已经制作了一个项目设置文件,该文件在我的调试中为我创建了文件。
Windows Installer 和安装应用程序都是必需的,但我想将它们合并为一个,就像当您下载应用程序时,安装程序只是一个文件。
有人可以告诉我如何做到这一点,或者只是将我指向一个好的来源。
提前致谢。
我已经使用 Visual Studio 在 C# 中编写了一个应用程序,我已经制作了一个项目设置文件,该文件在我的调试中为我创建了文件。
Windows Installer 和安装应用程序都是必需的,但我想将它们合并为一个,就像当您下载应用程序时,安装程序只是一个文件。
有人可以告诉我如何做到这一点,或者只是将我指向一个好的来源。
提前致谢。
如果您使用 Visual Studio 的内置安装项目模板来生成安装程序,则根本不需要该setup.exe
文件。
您唯一需要分发的是.msi
文件。其中包含用户安装应用程序所需的一切。该setup.exe
文件只是一个存根,它从文件中的信息启动安装例程,该.msi
文件是 Windows 安装程序用来安装应用程序的数据库。如果安装了 Windows Installer 服务,则可以通过双击这些文件来启动这些文件,因此setup.exe
如果您不想分发引导程序,您真的不需要分发。
您可能想要分发setup.exe
文件的一些特殊原因是:
出于某种原因,您预计您的用户可能没有在他们的计算机上安装所需版本的 Windows Installer。如今,这种情况变得非常罕见,尤其是考虑到宽带互联网连接的广泛性以及操作系统供应商在推动自动更新方面的努力程度。但是,如果您的用户“断开连接”(在许多意义上),您可能需要使用安装程序可执行文件来验证是否存在必要版本的 Windows 安装程序,如果不存在则安装它,然后启动您的.msi
文件以执行安装。.msi
(如果没有安装 Windows Installer,则无法运行文件。)
您需要支持多种语言。在这种情况下,文件可以在启动安装程序之前setup.exe
对文件执行语言转换。.msi
您想按.msi
顺序管理多个文件的安装。Windows Installer 的设计方式很难链接.msi
文件的安装,这使得在安装自己的应用程序文件之前或之后安装依赖项变得困难。文件setup.exe
不受 Windows Installer 的限制,因此可以用来链接这些并精确管理安装顺序。
通常,创建您自己的setup.exe
文件(或使用众多第三方安装程序软件包之一为您创建)会给您带来更大的灵活性。您基本上可以完全控制安装过程,而不必遵循 Windows Installer 的规则。
但在 83.44% 的情况下,这不是必需的,您应该遵循更简单的使用.msi
文件的方法。这还允许系统管理员跨他们管理的机器(例如,整个公司网络)自动安装,这是原始可执行文件不支持的。