Hi all, I am a beginner in .Net development. I need to ask about .Net winform deployment. If i have 1 exe file, some class libraries, and 3rd party components (DevExpress). Should i install these Dlls (class library and 3rd party component) in the GAC (Global Assembly Cache) in client computers ? Thank you for the explanations.
IMO, you should avoid installing these libraries into the GAC. By avoiding the GAC, you make your installation process significantly simpler. In fact, it can get so simple that you can simply copy the bits from one computer to another to do the installation (although you might have other installation constraints that would prevent this).
When you make a reference to a third-party library, you can, in Visual Studio, click on the reference and set the Copy Local
setting to true
. This will copy the library into your bin folder. Third-party libraries will typically install on the developers machine in the GAC, but for deployment you want the system to copy the library into your bin folder.
You should be able to do all of this using an Installer Pakage.
Step-by-Step Process of Creating a Setup and Deployment Project
It really depends on a few things, but there's a much better explanation and discussion here:
http://stackoverflow.com/questions/2451123/when-should-we-put-an-assembly-into-gac
The verdict (and my personal opinion) is that you never should.