如何创建和编辑WiX文件?

aaa*_*bbb 6 wix votive

微软正在逐渐远离Visual Studio内置的MSI安装项目.WiX似乎是另一种选择.但我发现的WiX教程大约有五年了.例如,WiX:新用户的提示(第1部分,共3部分)是2007年的一部分.

  1. 是否有更新/更好的WiX教程?

    那篇文章和其他人提到Votive是一种创建和编辑WiX文件的方法.

  2. Votive仍然是一个活跃的项目吗?

    WixEdit声称是WiX编辑器的唯一活跃项目,但它没有集成到Visual Studio中.

  3. 我应该使用WixEdit还是Votive?

sas*_*ont 9

这里是我以前张贴的答案在这里.我不打算更新它,除了添加Joy of Setup(来自bob-arnson),他博客侧边栏中的所有链接也都会有用,不那么从头开始学习但是一旦你起床就知道更多加速.

我大约4 - 5年前一头扎进WiX的,花了我一个很好的6个月以上之前,我觉得我知道我在做什么和12个月以上有信心.有一些可以做到很容易从头开始 - 但大多数人没有意识到的问题是,如果你首先学习Windows Installer/MSI,那么WiX很简单.


去拿一份Windows Installer的权威指南.我已经不知道有多少次我向那些坚持概念并且正在努力理解Windows Installer如何工作的人推荐它.确保您也获取了Windows Installer SDK.

掌握Windows Installer是您学习的第一个阶段,一旦沉入其中,您将了解InstallShield的工作原理(或根据具体情况不起作用......).Wise,InstallShield等尝试保护您免受基础概念的攻击,并拥有自己的技巧/黑客来克服Windows Installer的局限性.

第二阶段(如果您认真了解Windows Installer)正在学习WiX(WiX教程并不算太差,虽然它有点过时并且针对WiX 2.0而不是3.0)并且加入了wix-users邮件列表.在你完成上面提到的书之前,不要加入用户列表,你会很好.那些不了解Windows Installer概念的人的问题在很大程度上被忽略了,但是做完作业的人提出的问题会让它成为一个很好的资源.

本书未涉及的是Vista,Robert Flamings关于理解UAC和Vista的博客条目(当Vista处于测试阶段时编写)是您在该主题上可以找到的最佳信息.

Windows Installer和WiX团队真正擅长的一件事是使文档(帮助文件)保持最新.每当我在设置工作时,我通常会在一台显示器上打开Wix.chmMsi45.chm ;)

除了文档之外,来自WiX和Windows Installer团队的人们的博客也非常适合学习新的技巧等.这里列出的内容太多了,但是一旦你知道这些术语,你会发现大多数术语都出现在谷歌搜索结果中.

如果这一切看起来太多,那么请查看NSIS.非常适合简单的"我只需要复制文件"类型的安装,对于企业部署来说并不是那么好.如果你在两者之间挣扎,那么当设置不仅仅是xcopy时,可以去看看Rob Mensching的旧博客.那些文章可能使我相信,从长远来看,潜入和学习底层的Windows Installer概念会有所回报.它有:)

更新 - 自我的原始帖子以来,WiX:Windows Installer XML开发人员指南已经发布,对初学者来说也是一个很好的资源.(我自己并没有发现它那么棒.)我仍然建议阅读Windows安装的权威指南作为起点.Windows Installer和WiX不是你几天就能拿到的,它需要几个月的时间.

  • 问题是:有些人只想安装相当简单的程序.他们不想以安装程序为生,但安装人员只是必需品.我们失败了:构建一个简单的Wix-Bootstrapper比它应该更复杂.不是因为Wix很糟糕,而是因为没有人为编写一些全面的介绍性手册而烦恼. (5认同)
  • "在我觉得我知道自己在做什么以及12个多月的时间里,我花了6个多月的时间才感到自信...... WiX很简单." 到目前为止,这是我在堆栈溢出时读到的最有趣的事情.具有讽刺意味的是,这种说法很有趣. (2认同)

Tom*_*ers 5

我使用了WiX:Windows Installer XML的开发人员指南来快速了解WiX.

您可以从CodePlexWiX主页获得Visual Studio集成.


Bry*_*anJ 5

下载WiX并查看手册中的教程(也作为.chm安装).安装WiX时,它将安装必要的文件和模板,以便与Visual Studio很好地集成.

注意:WiX中的每个工具都以一个有助于表示其使用的字母开头.Votive只是与Visual Studio集成的部分.

例子:

  • Votive = Visual Studio
  • Burn = Bootstrapper/Bundle
  • Candle =编译器
  • Light = Linker