我的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
答案 0 :(得分:1)
为什么不使用Assembly.GetAssembly(typeof(CustomAction));
来获取包含自定义操作的程序集?
答案 1 :(得分:0)
说实话,我不确定这种情况是否可行。我的意思是,可能没有选项(或没有简单的选项)来让自定义操作执行程序集并从中提取资源。
而不是这样,我会尝试重新设计解决方案并将资源移动到MSI包中的Binary表。因此,您仍将拥有嵌入式资源,但不在CA DLL中,而是在MSI包本身中。 DTF.chm帮助文件包含如何从二进制表中提取文件的示例 - 这是几行代码的问题。