Search code examples
visual-studiogacsystem.data.sqlite

What version of the same DLL does VS choose if there are more than one in the GAC?


I've been developing for a while in a project involving SQLITE and .NET. Recently, SQLITE have released a new version. I decided to install it to the GAC(the same as I did with the previous installation). Now, I can see two dlls in the GAC. Does VS automatically pick to use the latest one?

Many thanks in advance!


Solution

  • This is dependent on DLL search order if the full path of the DLL is not used within the application. The default order (SafeDllSearchMode disabled):

    • The directory from which the application loaded.
    • The current directory.
    • The system directory. Use the GetSystemDirectory function to get the path of this directory.
    • The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
    • The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
    • The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.