在Wix DTF自定义操作中访问嵌入式资源

时间:2013-05-24 09:16:08

标签: wix wix3.7

我的DTF项目包含一些嵌入式资源,我想在CustomAction中访问它。

我在自定义操作方法

中尝试了以下代码
// Gets the current assembly.
Assembly Asm = Assembly.GetExecutingAssembly();

// Resources are named using a fully qualified name.
Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name);

然而,这不起作用,因为Asm始终引用Wix安装程序集而不是包含资源的自定义操作dll

2 个答案:

答案 0 :(得分:1)

为什么不使用Assembly.GetAssembly(typeof(CustomAction));来获取包含自定义操作的程序集?

答案 1 :(得分:0)

说实话,我不确定这种情况是否可行。我的意思是,可能没有选项(或没有简单的选项)来让自定义操作执行程序集并从中提取资源。

而不是这样,我会尝试重新设计解决方案并将资源移动到MSI包中的Binary表。因此,您仍将拥有嵌入式资源,但不在CA DLL中,而是在MSI包本身中。 DTF.chm帮助文件包含如何从二进制表中提取文件的示例 - 这是几行代码的问题。