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

.net 如何使用Wix和项目引用部署本机映像(NGen),.net,wix,wix3.5,ngen,project-reference,.net,Wix,Wix3.5,Ngen,Project Reference,我正在使用Wix/vove为我的.NET解决方案构建安装程序。我使用项目引用(我认为在内部使用heat.EXE的)包括来自其他项目(EXE和dll)的二进制文件 我现在要做的是,在安装过程中使用ngen.exe预jit所有程序集。根据Wix帮助,这可以通过以下方式完成: 现在的问题是,标记是由heat.exe创建的,我不知道如何建议heat.exe在内部生成标记,或者如何引用生成的标记并在外部附加标记 现在,我看到的唯一方法是不使用项目引用,但显然我希望保留它们 有什么建议吗?谢谢 Thea

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

我现在要做的是,在安装过程中使用
ngen.exe
预jit所有程序集。根据Wix帮助,这可以通过以下方式完成:


现在的问题是,
标记是由
heat.exe
创建的,我不知道如何建议
heat.exe
在内部生成
标记,或者如何引用生成的
标记并在外部附加
标记

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


有什么建议吗?谢谢

Theat不是为这个故事设计的,也不支持这个故事。大多数人使用Heat一次性完成创建wx的大部分繁重工作,然后将其作为代码进行维护。有些人喜欢将此应用到构建过程中以使其变得动态,但我确实反对这样做,因为如果您感兴趣,可以在其他地方找到这些原因

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

<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>