3

I'm migrating an Plugin from 2013.1 to 2014.1 Petrel Ocean version. When I try to generate the PIP file through PluginPackager.exe in version 2013.1, its functions normally. However, in version 2014.1 the following problem:

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

Unlike what happened in version 2013.1, everything indicates that the execution of PluginPackager.exe (2014.1) is doing a pre-validation and loading of all assemblies and their references present in the output directory.

Some plugins I could perform the migration, but adding and removing references like I was blindfolded.

Please, how do I find out references that are missing? Is recorded somewhere LOG? I want to reaffirm that the project compiles normally. The error occurs only in the generation of PIP file.

Pereira
  • 719
  • 8
  • 22
  • 1
    I have the same issue when upgrading to Petrel 2014. I can't figure out which references I am missing. – Web Sep 02 '14 at 15:42
  • This may happen for different reasons. Does your plug-in use native assemblies? If it does, it could be that there's an architecture mismatch in the assembly. – zlu Sep 05 '14 at 14:38

1 Answers1

3

Coming from linux as my primary development platform I am astounded at the lack of toolage provided by the .NET framework to introspect dependencies. I found references to some third party tools (Dependency Walker, .NET Reflector), and eventually found:

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

I couldn't get fuslogvw to work (or maybe I just didn't know where to look -- what's a wininet cache?), but there's a community addition at the bottom of the page explaining what registry settings to tweak:

In HKLM\Software\Microsoft\Fusion\

  1. EnableLog (DWORD) = 1 enables "logging to Exception Text" (whatever that is)
  2. LogFailures (DWORD) = 1 logs binding failures to disk
  3. ForceLog (DWORD) = 1 logs ALL binds to disk
  4. LogPath (String) = C:\tmp\ defines the directory to place log files

After setting (1), (2), and (4), PluginPackager generated log files in C:\tmp\ which shed some light on the missing references.

sqweek
  • 1,129
  • 9
  • 12