我有一个相当复杂的应用程序,这个应用程序的结构如下:
Main.exe
(是一个独立的应用程序)
Main.exe
用途Project1.dll
(其中包含一个表格)
中包含的表单Project1.dll
由另一个 dll ( Project2.dll
) 扩展,使用mono.addins
在Main.exe
我可以看到以正确方式扩展的表单。
我还实现了一个Project3.dll
通过 autocad 内部加载的 autocad 连接器(比如 )netload
,该连接器使用 的形式,Project1.dll
并且该形式也必须在 autocad 中扩展。
结果是在 AutoCAD 中我的表单似乎没有扩展,如果我调试代码:
AddinManager.Initialize();
AddinManager.Registry.Update(null);
foreach (IMyPlugin Addin in AddinManager.GetExtensionObjects(typeof(IMyPlugin)))
{
if (Addin.IsPluginLicensed)
EmbedPlugin(Addin);
}
foreach 不会产生任何插件。
请注意,这些 .dll 中的每一个都存储在同一目录中。
我想问题出在 autocad exe 文件的不同位置,但我尝试了一些调整,但都没有工作..
我试过了:
- 创建一个包含 .dlls 路径的 .addins 文件。
- 使用所有 .dll 的副本创建一个子文件夹 \addins\
- 初始化
AddinManager
给出的.dll路径 - 更新
AddinManager.Registry
给定的 .dll 路径
代码结构相当复杂(涉及许多文件和项目),因此不太容易粘贴或提供一些工作代码。