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