我正在使用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 />标记。
现在,我看到的唯一方法是不使用项目引用,但显然我想保留它们。
有什么建议吗?谢谢!
发布于 2011-01-13 21:55:55
热不是为这个故事设计的,也不支持这个故事。大多数人只使用一次热来完成创建WXS的大部分繁重任务,然后将其作为代码进行维护。有些人喜欢把它放到构建过程中来变得动态,但我真的反对这样做,原因可以在其他地方找到,如果你感兴趣的话。
因此,要么像这样做,要么编写一些自动化程序,使用LINQ to XML (或您最喜欢的XML DOM )查找属于.NET程序集的文件元素,然后用子NativeImage元素标记它们。您还必须将名称空间声明放在文档的顶部。
https://stackoverflow.com/questions/4679937
复制相似问题