我创建了一个基本的插件,它工作得很好,当我部署与发展:
del "$(ProjectDir)\plugin.xml" "%Ocean2012Home%\PluginPackager.exe" /g "$(TargetPath)" "$(ProjectDir)\plugin.xml" "%Ocean2012Home%\PluginPackager.exe" /mh "$(ProjectDir)\plugin.xml" "%OCEAN2012HOME%\petrel.exe" "$(TargetDir)"
随着海洋开发指南表示。
当我尝试做一些更复杂的它告诉我它无法找到的DLL和它的参考之一。 该DLL是目前我的项目正在建在哪里。 我讨论procmon检查,我可以看到,海洋并没有检查该文件夹中的DLL。
我不得不强迫从特定的目录路径加载组件( 使用C# -从特定的目录路径加载组件 )这样做,我的插件加载正确。 这是海燕有问题的DLL是InfragisticsWPF.DockManager.dll
我谈到与正在对海燕和一些向我提到,自2012年版本,他们必须迫使他们的一些dll的LoadAssembly因为海燕不会发现他们其他球队。 事情在2011年版本的罚款。 也许有在2012年导致此引入了一些变化呢? 我们错过了一些配置?
更新
按照要求,这就是融合日志查看器显示:
对于InfragisticsWPF.DockManager.DLL它试图访问
C:大会经理从装\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll下可执行的C运行:\ Program Files文件\海燕2012.3 \ petrel.exe
- C:/ Program Files文件/海燕2012.3 /和很多像“扩展”的子目录看起来它通过C内的所有文件夹去:/ Program Files文件/海燕2012.3 /
- 它试图寻找InfragisticsWPF.DockManager.EXE过,同样的文件夹内。
- 所有探测网址企图失败了。
它从不搜索在我的插件是路径。 虽然海燕无法加载InfragisticsWPF.DockManager.DLL它不会失败加载任何我其他的DLL。 对于我的其他DLL日志查找的文件夹中一样的,但在最后一次尝试检查在我的插件是:
LOG: Attempting download of new URL
file:///c:/myFolder/MyAssembly.DLL.
LOG: Assembly download was successful. Attempting setup of file: c:\myFolder\myAssembly.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: MyAssembly, Version=1.0.0.0, Culture=neutral
LOG: Where-ref bind Codebase does not match what is found in default context. Keep the result in LoadFrom context.
LOG: Binding succeeds. Returns assembly from c:\myFolder\myAssembly.dll.
LOG: Assembly is loaded in LoadFrom load context.
这两个DLL是一个挨着另一个,但由于某种原因海燕与InfragisticsWPF.DockManager.DLL,不与任何存在的其他DLL的问题。