windows - 如何在安装程序中将应用程序设置为 "wrap"?

标签 windows installation exe wrapper

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

到目前为止,我已经编写了几个相当小的应用程序,但它们都包含一个可以“按原样”运行的可执行文件。这意味着实际的应用程序不需要预先进行任何安装即可使用,您只需在线下载文件,运行它即可开始使用。

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

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

最佳答案

标准Windows Installer体验是通过创建称为 MSI 文件的安装包来实现的。 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 嵌入到您的安装包中。

关于windows - 如何在安装程序中将应用程序设置为 "wrap"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469236/

相关文章:

sql-server - 全新安装 SQL Server 2019 Developer Edition 后 SQL Server 实例未启动

c# - 用另一个写一个可执行文件

opencv - 将opencv项目从32位计算机移植到64位计算机

windows - 如何让我的 Windows 窗体应用程序最小化到系统任务栏?

windows - Windows Mobile应用程序的GUI测试工具

python - 在 PC 上同时运行 Python 2.7 和 3.5

windows - Windows上的Qt dll部署

c++ - 在 Mac/Linux 上查找已安装的应用程序

directx - DirectX 中的 x64 和 x86 库文件有什么区别?

带有 JRE 检查的 Java 应用程序的 Windows exe 启动器