适用于 C# 应用的安装程序

本文关键字:安装 程序 应用 适用于 | 更新日期: 2023-09-27 18:31:13

我正在开发一个开源的C#应用程序。一段时间以来,我一直在使用我自己编写的基本 .NET 安装程序。但是,随着最近的更改,这对我来说不再实用,因为我必须向安装程序添加大量文件 - 并且它们可能会随着每个版本而更改。ZIP 文件也不实用。

我在网上做了一些检查,我看到很多MSI,ClickOnce,自解压ZIP,以及(imo最有前途的)NSIS系统。它们似乎都不完全符合我的需求,所以我正在寻找有关使用哪个系统的建议。

程序的实际安装非常简单。基本上,我只需要将 bin''Release 目录(和所有子目录)复制到客户端计算机。我一直在通过在我的 .NET 安装程序中嵌入每个文件并维护一个文件表来说明什么去哪里,从而实现了这种临时性

不幸的是,我刚刚本地化了我的应用程序。我现在有 30+ .resx 文件(这些文件被编译为 dll 并由 Visual Studio 放入 MORE 子目录中),显然,将 30+ 文件夹和 DLL 添加到我的安装程序是不切实际的。因此,我为什么要进行此搜索。

还有一些其他要求:

  • 安装程序应在预定义目录中搜索指定的.exe。(我的应用程序旨在作为替代品)如果未找到.exe,则应提示输入其位置
  • 安装程序应验证"OldApp.exe.bak"是否存在。如果没有,它应该将"OldApp.exe"重命名为"OldApp.exe.bak"
  • 安装程序应更新文件。也就是说,如果"Culture.de.dll"没有改变,安装程序将不管它。
  • 安装程序应该适用于所有.NET IDE(VS,SharpDevelop,Mono等)的所有Windows版本,但不需要在其他平台上工作。
  • 生成
  • 解决方案时,应自动重新生成安装程序。换句话说,它应该可以通过"后期构建"部分运行。
  • 安装程序生成必须能够添加到源代码存储库中。这样,下载我的应用程序源代码的任何人都可以编译安装程序。

对不起,帖子很长,我认为发布更多总比发布更少更好。

适用于 C# 应用的安装程序

我推荐SharpSetup。 它结合了WiX和C#,以实现非常灵活的实现。 我没有发现它无法完成的事情。

我们广泛使用WIX:http://wix.codeplex.com/

你可能必须使用一些退出例程自定义安装程序才能执行不寻常的操作,但 Windows 安装程序框架中有一些钩子可以让你做到这一点。

可以将这些定义文件 (XML) 放在源代码管理中,并且可以配置生成以执行安装。 但是,任何获得源代码的人都需要安装 WIX 实用程序。

我会推荐NSIS。 根据我的经验,NSIS文档或社区示例中涵盖了我所需的任何安装程序功能。 我不能评论NSIS与Visual Studio的集成,因为我使用NSIS与我的Jenkins构建服务器集成。 似乎有一个名为Visual & Installer的免费Visual Studio插件,它提供NSIS与Visual Studio的集成。 我没有亲自使用它,但它目前似乎正在积极开发,因此可能值得一试。

WIX是一个很好的选择。根据维基百科,Microsoft使用它来为自己的一些产品生产安装程序。