发展中的部署无法找到一个DLL和引用(Deployment during Development c

2019-10-18 05:14发布

我创建了一个基本的插件,它工作得很好,当我部署与发展:

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的问题。

Answer 1:

我们具有已经工作了插件同样的问题。 其原因是,在安装使用“插件管理”插件不再改变<probing privatePath="Public;Extensions;..."/>文件petrel.exe.config的属性。 在海燕安装插件(附加模块)中加入插件目录“探测路径”,导致Assembly.LoadFile找到这样目录的老办法。

写一个测试...手动“探测路径”添加插件的目录,这个问题将得到解决。 只是还不知道为什么斯伦贝谢这种变化,如果有做这一个比较正确的做法。



Answer 2:

需要补充的是在pluginpackager.exe.config海燕文件夹内你的插件文件夹路径



文章来源: Deployment during Development can not find a dll and its references
标签: ocean petrel