Petrel 2014中的PluginPackager - 无法加载文件或程序集

时间:2014-09-01 19:01:57

标签: ocean petrel

我正在将插件从2013.1迁移到2014.1 Petrel Ocean版本。当我尝试通过版本2013.1中的PluginPackager.exe生成PIP文件时,其功能正常。但是,在2014.1版中存在以下问题:

Plug-in DID NOT PASS validation.
        The path of external libraries (e.g. assemblies that are shared between plug-ins) has to be added to the probing paths defined in PluginPackager(-32).exe.config.
        Could not load file or assembly 'PluginModule.dll, Version=2012.6.1.1618,Culture=neutral, PublicKeyToken=f95240d2d568401b' or one of its dependencies. The system can not find the file specified.
        Source: mscorlib

与版本2013.1中发生的情况不同,所有内容都表明PluginPackager.exe(2014.1)的执行正在对输出目录中存在的所有程序集及其引用进行预验证和加载。

我可以执行迁移的一些插件,但添加和删除像我这样的引用被蒙上眼睛。

请问,如何查找丢失的参考文献?记录在哪里LOG?我想重申该项目正常编制。该错误仅在生成PIP文件时发生。

1 个答案:

答案 0 :(得分:3)

来自linux作为我的主要开发平台我很惊讶.NET框架提供的内部缺乏内省依赖性。我找到了一些第三方工具(Dependency Walker,.NET Reflector)的引用,最终找到了:

http://msdn.microsoft.com/en-us/library/e74a18c4%28v=vs.90%29.aspx

我无法让fuslogvw工作(或者我可能只是不知道在哪里查看 - 什么是wininet缓存?),但是在底部有一个社区添加页面解释要调整的注册表设置:

HKLM\Software\Microsoft\Fusion\

  1. EnableLog (DWORD) = 1启用“记录到异常文本”(无论是什么)
  2. LogFailures (DWORD) = 1将绑定失败记录到磁盘
  3. ForceLog (DWORD) = 1记录所有绑定到磁盘
  4. LogPath (String) = C:\tmp\定义了放置日志文件的目录
  5. 在设置(1),(2)和(4)之后,PluginPackager在C:\ tmp \中生成了日志文件,这些文件揭示了缺失的引用。