none
Where do I find version conflicts? RRS feed

  • Question

  • I have a "Found conflicts between different versions of the same dependent assembly." warning.

    It involves vjslib 1.5 and 2.0. I have both installed. I want my app to run the older version. All references to vjslib used by projects in solution have been changed to use the older version but the problem remains. I used ILDASM to double check. All assemblies are OK.

    I used FUSLOGVW to trace how the DLLs are loaded/bound. Here is what I found:

    LOG: This bind starts in default load context.
    LOG: Using application configuration file: C:\Documents and Settings\alabam\Desktop\Inxight\IxBrowseTools\bin\Release\IxIndexer.vshost.exe.Config
    LOG: Using machine configuration file from c:\WINNT\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
    LOG: Version redirect found in framework config: 1.0.5000.0 redirected to 2.0.0.0.
    LOG: Post-policy reference: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    LOG: Reusing an assembly instance that was previously loaded (C:\winnt\assembly\GAC_32\vjslib\2.0.0.0__b03f5f7f11d50a3a\vjslib.dll).

    I checked both IxIndexer.vshost.exe.Config and ...\v2.0.50727\config\machine.config and can't find any redirects specific to vjslib.

    How do I find this? Or eliminate the warning? Thanks!
    --Michael Alabastro

    • Edited by magalabastro Wednesday, December 23, 2009 3:56 PM typo error
    Monday, December 21, 2009 10:08 PM

Answers

  • According to this page http://msdn.microsoft.com/en-us/vjsharp/bb188598.aspx, your VJ# runtime libraries version has to match exactly the .NET Framework version - therefore you cannot use vjslib 1.1 (1.0.5000.0) on .NET Fx 2.0.

    .NET Framework knows about vjslib.dll and automatically retargets its version to 'current' Fx version (2.0 in your case). The same thing happens for example for mscorlib.dll or System.dll. If your app references ealier version of any 'known' DLL, the current will be used.

    That's what this Fusion log entry means:
        LOG: Version redirect found in framework config: 1.0.5000.0 redirected to 2.0.0.0.
    The DLL is 'known' and built-in Framework policy ('framework config') will redirect its version.

    You have 2 options:
    1) Use vjslib 2.0 (and run on .NET Fx 2.0).
    2) Use .NET Fx 1.1 (an use vjslib 1.1).

    -Karel
    Tuesday, December 22, 2009 5:43 PM
    Moderator

All replies

  • According to this page http://msdn.microsoft.com/en-us/vjsharp/bb188598.aspx, your VJ# runtime libraries version has to match exactly the .NET Framework version - therefore you cannot use vjslib 1.1 (1.0.5000.0) on .NET Fx 2.0.

    .NET Framework knows about vjslib.dll and automatically retargets its version to 'current' Fx version (2.0 in your case). The same thing happens for example for mscorlib.dll or System.dll. If your app references ealier version of any 'known' DLL, the current will be used.

    That's what this Fusion log entry means:
        LOG: Version redirect found in framework config: 1.0.5000.0 redirected to 2.0.0.0.
    The DLL is 'known' and built-in Framework policy ('framework config') will redirect its version.

    You have 2 options:
    1) Use vjslib 2.0 (and run on .NET Fx 2.0).
    2) Use .NET Fx 1.1 (an use vjslib 1.1).

    -Karel
    Tuesday, December 22, 2009 5:43 PM
    Moderator
  • Thanks Karel! That was very helpful.
    Wednesday, December 23, 2009 3:57 PM