Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6721729
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T09:21:49+00:00 2026-05-26T09:21:49+00:00

I have a project which needs to use NHibernate to communicate with my Oracle

  • 0

I have a project which needs to use NHibernate to communicate with my Oracle database.

Many projects at my workplace use NHibernate, so the NHibernate assembly was placed in the Global Assembly Cache, a tool that I do not entirely understand. From my research, I have gathered the following:

  1. The Global Assembly Cache is a central repository for dlls which are referenced by many projects. This dodges the problem of DLL Hell – when a new version of your dll is released, you update it in the cache a single time, and all .NET projects that reference it will now use the new version.
  2. You cannot add a reference to an assembly in the assembly cache. “Assemblies that have been registered in the GAC will not appear in [the Add Reference] list“. You can, however, forcibly make them appear by mutilating the registry.
  3. You can easily add a reference to an assembly in the assembly cache. “simply use the Add Reference window to add a reference to an assembly you’ve installed in the GAC“. (I’m inclined not to believe this, since I don’t see any GAC assemblies in my Add Reference window).
  4. Several projects at my workplace do have references to many assemblies in the GAC. Those assemblies never appear in the “Add Reference” menu, so I know my predecessors did not use the registry mangling technique. Yet they clearly originate from the GAC – their file path is a subdirectory of C:\Windows\assembly.

Point two obviously contradicts the other three, but if it were simply false, I wouldn’t have any problems referencing libraries. It definitely reflects reality in that my GAC assemblies are nowhere to be found in the “Add References” window.

I would like to know two things:

  • When would a developer ever want to use the GAC? What good is a
    library that can’t be referenced without registry trickery?
  • What steps did my predecessors take to reference libraries in the
    GAC, without touching the registry?
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T09:21:50+00:00Added an answer on May 26, 2026 at 9:21 am

    and all .NET projects that reference it will now use the new version.

    No, that’s called DLL Hell. Applications reference a specific version of an assembly. You can update a DLL and update an application that uses it. And not break an old application that uses that DLL as well but didn’t get recompiled. You can do that with the GAC because it can store multiple versions of a DLL. Or you can do this just as easily by keeping the DLL in the same directory as the application’s EXE.

    Assemblies in the GAC do not appear in the Add Reference dialog. Necessarily so, you don’t know what your user has stored in her GAC. You use the Browse tab on your dev machine instead so you’ll be sure that you use a specific build of the DLL.

    The GAC is important to companies that need to distribute security updates. Like Microsoft. It ensures that there are no unpatched copies of the DLL floating around. Also important for [ComVisible] assemblies to solve COM’s DLL Hell problem. That’s about it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a test project in which I needs to load an XLSX file.
I have a project which needs to be used in 4.6 and 5.0 versions
I have a project which needs to make a tcp connection to an external
So...i have used a map in a project which needs coordinates to set markers
I have a Spring-MVC project which needs to have 2 views for example: views/xxx/...
I have a maven project A that use hibernate-annotations 3.4.0.GA which use the slf4j-api
I have been asked to create a project in vb.net which needs to integrate
I have a project in which I need to display multiple UITableView instances inside
I have a GWT project in which I need to manually specify currency, number
I have a project in which I would need to copy files found within

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.