Versioned vs. Un-versioned Permutation dlls (FAQ86)

When downloading/extracting the permutation DLLs, 2 folders are created: versioned and un-versioned. I have used successfully the versioned dlls to make API calls and get feature information for licenses, but I am still wondering what the difference actually is...

As of release 3.0.1910, use of the 'versioned' scheme is no longer recommended or necessary and has been deprecated, as that release and higher now:

  •  Have an internal .NET Assembly Version that matches the VERSIONINFO (i.e., what you see in properties in Windows Explorer)
  • Are not prone to older (or newer) versions of the Runtime DLLs that are registered in the .NET Global Assembly Cache (GAC) overriding the Runtime DLLs that you ship with your application

Thus one should ship the 'unversioned' (viz., the ones without the  (version) segment in the DLL filenames - e.g., you ship Microsoft.Licensing.Runtime2.0.dll, NOT Microsoft.Licensing.Runtime2.0(1910).dll)

As of version 3.0.1910, the 'versioned' variants are only provided for backward compatibility, and do not afford one any capability not present in the 'unversioned' variants of the runtime - i.e., if you are not in a position to update your installation scripts to take advantage of the newly version-neutral 'unversioned' assemblies and are not affected by the deficiencies of the 'versioned' (set such as loading issues with License Administrator etc.).

Please note that the 'versioned' variant will be removed in a future release and new projects should not use them.

Link to this


You can link to this item directly, using the shorter URL