0

我的 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 Setup 程序集,而不是包含资源的自定义操作 dll

4

2 回答 2

1

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

于 2014-07-01T15:06:51.770 回答
0

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

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

于 2013-05-24T11:06:05.363 回答