Wix中的大多数事情都必须手工完成吗?

时间:2012-06-16 10:23:44

标签: c# winforms visual-studio-2010 wix

我现在使用Click Once的时间更长,而且很容易将应用程序部署到我的客户手中。但最近我决定继续前进,因为有些事情我无法在ClickOnce部署中解决(比如ngen Devexpress库)。

所以我想转向WiX,但我想知道我是否真的需要

<DirectoryRef Id="INSTALLLOCATION">
  <Component Id="Executable.exe" Guid="{C4DCEDD2-B4FF-4DFB-B7D6-2FA8B16D7740}">
    <File Id="Executable.exe" Source="C:\MySourceFiles\Executable.exe" KeyPath="yes" Checksum="yes"/>
  </Component>
  <Component Id="documentation.html" Guid="PUT-GUID-HERE">
    <File Id="documentation.html" Source="C:\MySourceFiles\documentation.html" KeyPath="yes"/>
  </Component>

  ... each dll goes here
  ... each xml goes here
</DirectoryRef>

我是否必须真正通过70多个文件并逐个放置并为其生成GUID?它不能从目录或其他东西自动生成它,然后最终我可以填写它?或者我做错了什么?

3 个答案:

答案 0 :(得分:7)

不,你不能使用收获工具加热来生成wxs文件。有关详细信息,请参阅http://wix.sourceforge.net/manual-wix3/heat.htm。 3.6的最新版本中有更多功能未在此处记录,因此请查看您的版本的帮助。

答案 1 :(得分:3)

你可以尝试很多外部的wix工具,这里有几个:

WixEdit

IsWix

您还可以滚动自己的自定义脚本以生成所需的XML。

答案 2 :(得分:2)

  

我是否必须真正通过70多个文件并逐个放置并为其生成GUID?

不,您可以省略GUID。来自GUID属性的Component element documentation

  

如果省略,则默认值为'*',表示链接器   应该产生一个稳定的guid。仅支持可生成的guid   对于具有单个文件作为组件的keypath或no的组件   文件和注册表值作为keypath。

您还可以省略文件IdKeypath属性。可以从Id文件名自动生成Source。并且KeyPath是多余的,因为如果一个组件只有一个文件,那么wix会自动将该文件标记为keypath。