【问题标题】:Installer for C# AppC# 应用程序的安装程序
【发布时间】:2012-04-16 17:25:31
【问题描述】:

我正在开发一个开源 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# .net installation


【解决方案1】:

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

【讨论】:

  • 我选择了这个,因为它结合了 WIX 和其他功能。非常有用:)
【解决方案2】:

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

您可能需要使用一些退出例程来自定义安装程序以执行不同寻常的操作,但 Windows Installer 框架中有一些挂钩可以让您这样做。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      WIX 是一个不错的选择。据Wikipedia称,它被微软用来为他们自己的一些产品制作安装程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多