我有一个项目,我必须同时使用ActiveReports 2和ActiveReports 6中的报告。总体而言,它可以正常工作,但是一些辅助组件使用了相同的名称。例如,为了能够导出到PDF,两个版本都使用称为activereports.pdfexport.dll的汇编。当然,相应的组件是不同的。

请注意,我不直接访问activereports.pdfexport.dll-这是由ActiveReports运行时处理的。

我找不到将它们都包括在项目中的方法。有办法吗? GAC是答案吗?

有帮助吗?

解决方案

创建单独的 外部别名 如果您有类型的名称碰撞,则每个组件都会有所帮助。对于集会名称碰撞,请看一下 ilmerge;您可以将所有相关组件组合在一起。您将为ActiveReports 2创建一个组件,该组合结合了所有必需的组件,另一个组合了ActiveReports 6。

其他提示

GAC是一种方法,但是融合分辨率具有很大的灵活性,这可能就足够了。 Fusion将在基于汇编名称的基于指示中进行探测。[dll | exe]。如果找不到的话,它将探测基于electory name。[dll | exe] name。[dll | exe]。因此,您也许可以摆脱在bin文件夹中创建一个名为activereports.pdfexport.dll的文件夹,并将文件的旧版本倒入其中。

是的,您必须将两者都放入GAC中(这是客户组装的情况下的目的)。

我的想法是:创建两个库馆,每个库馆,每个库中的组件,将其注册为某种工厂或经理,并在需要时致电特定的组件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top