如何使用Wix和项目引用部署本机映像(NGen)

时间:2011-01-13 12:21:26

标签: .net wix wix3.5 ngen project-reference

我正在使用Wix / Votive为我的.NET解决方案构建安装程序。我使用项目引用(我认为内部使用heat.exe)包含来自其他项目(EXE和DLL)的二进制文件。

我现在要做的是,在安装过程中使用ngen.exe预先绑定所有程序集。根据Wix的帮助,这可以通过WiX .NET extensions library

完成
<Component Id="App.exe" Guid="PUT-GUID-HERE">
    <File Id="App.exe" Source="App.exe" KeyPath="yes">
        <netfx:NativeImage Id="ngen_App.exe" Platform="32bit" Priority="0" />
    </File>
</Component>

现在的问题是<File />标记是由heat.exe创建的,我无法弄清楚如何建议heat.exe生成<NativeImage />标记内或如何引用生成的<File />代码并在外部附加<NativeImage />代码。

现在,我看到的唯一方法是不使用项目引用,但显然我想保留它们。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:3)

热量不适用于此故事,也不支持此故事。大多数人使用Heat一次来完成创建WXS的大部分繁重工作,然后将其作为代码从那里维护。有些人喜欢把它放到构建过程中变得有活力但是我真的反对那个原因,如果你感兴趣可以找到其他地方。

所以要么这样做,要么写一些自动化来运行使用LINQ to XML(或你最喜欢的XML DOM)来查找作为.NET程序集的File元素,然后用子NativeImage元素标记它们。您还必须将名称空间声明放在文档的顶部。