17

我们正在使用 Inno Setup,并计划用 WiX 替换它。但是在评估和使用 WiX 时,我觉得声明方式与编程设置解决方案相比存在一些局限性。

此外,我发现 WiX 文档相当稀疏。所以我遇到了 Wix# (WixSharp),它承诺通过用 C# 编写的脚本文件以编程方式创建 WiX 源代码。

然而,我们在非常小的公司甚至“单人秀”中也有过一些负面的经历。因此,我只想询问您使用 Wix# (WixSharp) 甚至其他不错的替代品的经验。你能报告一些优点或限制吗?

4

2 回答 2

18

Wix# 看起来像是在“明年左右”得分上的一个更好的赌注;见下文。请注意,现在在 Wix# 中构建自定义操作非常简单。

从这篇文章: http: //www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX

2014 年 7 月,Wix# 在更自由的 MIT 许可下重新发布,现在托管在 CodePlex 上。 https://wixsharp.codeplex.com/

2014 年 8 月,Wix# 的 UI 扩展发布并在此 CodeProject 文章中进行了描述:“Wix# (WixSharp) UI Extensions”。
http://www.codeproject.com/Articles/804584/Wixsharp-WixSharp-UI-Extensions

新的 Wix# 功能即将推出这一事实对该产品来说是个好兆头。

由于 Wix# 是建立在 WiX 和 Windows Installer 技术之上的,因此它只能做 WiX 中可以做的事情。当 Wix# 耗尽燃料时... WiX 可以做很多 Wix# C# 语法中无法直接使用的事情,因此您通常可以直接使用 WiX XML 技术来弥补差距。另请参阅我的答案,以获取使 Wix# 生成 .wxs XML 的其他示例,然后包含其他 WiX XML 代码并调用 Candle 和 Light 以将生成的组合 XML 构建到 MSI 中。 以编程方式构建 MSI

以下是迄今为止我所经历的 WiX 和 Wix# 优缺点的快速、非详尽列表。

WiX/Wix# 优点:

  • 它生成真正的Windows Installer MSI 文件。
  • 卸载功能是“免费的” ;您会自动获得可靠的卸载程序。
  • 我环境中的服务器管理员很容易接受我作为开发人员想要安装的东西的 MSI 文件,因为他们信任 MSI 技术和卸载功能。
    • Windows 注册表项包含在您获得的“免费”卸载中,只要您使用 WiX 或 Wix# 本机语法创建它们并且不合并 .reg 文件 - 您不会以这种方式卸载注册表项。

WiX/Wix# 缺点

  • 因为它仅限于 Windows Installer 功能集,所以在 WiX 和 Wix 中一些“程序”的事情更难做#

WiX 专业人士

  • Web 上有很多很好的示例和支持资源(“我如何 .. 在 WiX 中”)。
  • 用于收集注册表项和放入 XML WiX 语句的实用程序运行良好。

WiX 缺点

  • 作为一名 C# 开发人员,我发现 WiX XML 上手不直观,直接使用 XML 文件。Wix# 和 C# 一开始比 WiX 更有意义。

蜡# 优点

  • 自定义操作现在很容易在 Wix# 中实现。
  • Wix# 与 Visual Studio 完美集成。我目前正在将它与 VS2013 一起使用。
  • Wix# 和 C# 一开始比 WiX XML 更有意义。更好的起点。
  • Wix# 帮助我以更平易近人的方式学习 WiX。了解在 Wix# 中哪些有效和无效有助于理解 WiX。

蜡#缺点

  • Wix# 示例目前在 Web 上更难获得。通常有必要研究 WiX 方法,然后弄清楚如何将其应用于 Wix#。
  • 我没有找到用于收集注册表项并在 WiX# C# 代码中表达的自动路径。我手动翻译了 .reg 文件条目。必须在 Wix# "RegValue(" 语句中包含注册表项才能获得注册表项的自动卸载功能。 注意:开发人员在 2015 年 1 月的版本中添加了此功能。我还没有尝试过。

我会说,在 WiX/Wix# 中做的事情在 NSIS 等程序安装程序中简单而明显,而上一代基于脚本的安装程序(例如,较旧的 Wise 版本)通常需要在 WiX/Wix# 中进行额外的研究和创造力。

总的来说,我认为 Wix# 是一种增长技术,是当前和未来使用的安全赌注。最坏的情况是,您仍然拥有 .wxs 文件,并且可以转而使用直接的 WiX XML 方法来构建安装程序,并且您仍然可以从 Wix# 时间投资中获得价值。

用于常见安装程序任务的 Wix# 产品的最新更新

截至 2015 年 1 月。请参阅:[ https://wixsharp.codeplex.com/releases/view/610843][1]

  • 现在可以导入 .reg 注册表设置文件,而不是手动编码注册表类条目
  • 对 Windows Config 文件修改的额外支持
  • 对 Windows 服务安装的特定支持
  • 支持将参数值传递给延迟自定义操作,所有支持 WiX 的基础设施都正确自动生成
  • Support for absolute path in target system directory, with all WiX supporting infrastructure properly auto-generated
于 2014-10-07T19:26:38.410 回答
1

WiX 已经存在了很长一段时间,并且得到了很多社区的支持。我已经做了大约 8 年的设置(在我的业余时间:) )并且从未发现任何我在 WiX 中无法合理做的事情。

这是我第一次看到 WixSharp。我的第一反应是它有多稳定,因为它目前是 0.1.42。我还担心在 WixSharp 中实际实现了多少 MSI 模式。它看起来很有趣,但我会更喜欢 XML 文件。我真的看不出在 C# 中这样做有什么好处。

于 2012-04-16T19:20:55.283 回答