如何使用 Wix 和项目参考部署本机映像 (NGen)
Posted
技术标签:
【中文标题】如何使用 Wix 和项目参考部署本机映像 (NGen)【英文标题】:How to deploy native images (NGen) using Wix and project references 【发布时间】:2011-06-08 11:21:27 【问题描述】:我正在使用 Wix/Votive 为我的 .NET 解决方案构建安装程序。我使用项目引用(内部使用heat.exe
我认为)包含来自其他项目(EXE 和 DLL)的二进制文件。
我现在要做的是,在安装过程中使用ngen.exe
预jit 所有程序集。根据 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 />
标签或如何引用生成的@987654329 @标签并在外部附加<NativeImage />
标签。
目前,我看到的唯一方法是不使用项目引用,但显然我想保留它们。
有什么建议吗?谢谢!
【问题讨论】:
【参考方案1】:Heat 不适合也不支持这个故事。大多数人一次使用 Heat 来完成创建 WXS 的大部分繁重工作,然后从那里将其作为代码进行维护。有些人喜欢将其放入构建过程中以使其变得动态,但我真的反对这样做,原因可以在其他地方找到,如果您感兴趣的话。
因此,要么这样做,要么编写一些自动化程序在热之后运行,使用 LINQ to XML(或您最喜欢的 XML DOM)来查找作为 .NET 程序集的 File 元素,然后用子 NativeImage 元素标记它们。您还必须将命名空间声明放在文档的顶部。
【讨论】:
以上是关于如何使用 Wix 和项目参考部署本机映像 (NGen)的主要内容,如果未能解决你的问题,请参考以下文章