我想知道在创建/更改xml时C#Custom action和util extention之间的优缺点。
根据我的经验 -
C#自定义操作:使用LINQ to XML和XmlReader比使用wix语法更常见。更改非wix用户的代码会更方便。
XmlConfig / XmlFile:无需知道c#即可更改xml。非常适合非程序员和小型msi包。
希望这两种功能更具优势。
答案 0 :(得分:2)
1)如果您正在编写托管代码,则必须处理回滚和卸载方案。
如果您使用的是WIX代码,则安装程序将处理回滚和卸载方案。
2)但是您在托管代码中没有太多控制权,即您受到WIX工具集提供的限制。
3)不要忘记共享资源。大多数情况下,托管代码在共享资源中所做的更改不会增加共享资源引用计数器。 使用WIX安装程序进行更改时,可以解决此问题。
并且会有更多这样的差异。尽可能尝试使用WIX功能并仅在WIX没有该功能或使用实现该解决方案的错误时使用自定义操作。
答案 1 :(得分:1)
主要区别在于编程的命令式和声明性范式 因为WiX更喜欢声明式风格 - 扩展是更好的方式
其次 - 如果您编写自己的CA(托管或非托管),您必须处理修复/回滚/卸载seqs(它在UtilExt中完成)