首先,这可能是一个模糊的问题,并且可能没有结构合理的答案,因此它可能不符合SO规则。

到目前为止,我已经编写了几个相当小的应用程序,但是它们都由一个可“按原样”运行的可执行文件组成。这意味着实际的应用程序不需要任何安装即可使用,您可以简单地在线下载文件,运行它,然后就可以使用了。

在线上的大多数应用程序都要求您下载安装程序。然后设置一些首选项(即要放置应用程序文件的位置,主要用户是谁等),完成后,安装开始解压缩(?)实际运行该应用程序所需的文件。

我想安装程序是一个包装程序,其中包含您的代码和/或您可能正在使用的任何其他资源。谁能指导我有关此过程的一些相关信息?我没有相对的问题,也许不清楚我要问的是什么,我只是对事情的运作方式感到好奇。

最佳答案

通过创建称为MSI文件的安装程序包,可以实现标准的Windows Installer体验。由用户启动的MSI将安装组件(文件,注册表项,运行时组件,其他安装程序包等)。可以将MSI安装体验配置为具有UI。通常的方法是股票“向导” UI,用户可以在选择设置选项(例如安装位置)时单击“下一步”。 MSI的好处是,它们会自动带有“卸载程序”,该卸载程序显示在“控制面板”的“添加/删除程序”对话框中。如果用户取消设置(或安装失败),它将执行自动回滚。

Visual Studio通常包括一组称为“安装程序包”的项目类型,它为您提供了创建基本安装程序包装程序的支持。如果您要安装的文件很少,这可能会满足您的需求。

我建议使用WIX Toolset(这是由Microsoft赞助的一个开源项目)来建立安装程序包。 WIX为您提供了对整个设置过程的更多控制。它有一些学习开销,但是您会发现这是最灵活的。

另一个快速点。 Windows EXE很少按“原样”运行。无论是.NET EXE还是使用C/C++构建的应用程序,通常都依赖于运行时,例如特定版本的.NET或Visual Studio CRT。通常,当您开发此类EXE时,它们确实确实可以在您自己的计算机上运行。那是因为Visual Studio为您安装了所有这些依赖项。将同一可执行文件复制到另一台运行旧版Windows的计算机上,您可能会发现它没有运行。您将需要加快了解如何嵌入.NET版本和相对于安装程序包嵌入CRT的速度。

10-01 02:04
查看更多