我正在将插件从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文件时发生。
答案 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\
EnableLog (DWORD) = 1
启用“记录到异常文本”(无论是什么)LogFailures (DWORD) = 1
将绑定失败记录到磁盘ForceLog (DWORD) = 1
记录所有绑定到磁盘LogPath (String) = C:\tmp\
定义了放置日志文件的目录在设置(1),(2)和(4)之后,PluginPackager在C:\ tmp \中生成了日志文件,这些文件揭示了缺失的引用。