Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Visual Studio Setup Project to automatically register and GAC a COM Interop DLL

I've created a .NET assembly for COM interop and it is working well on my development machine. I'm currently trying to figure out how to deploy the DLL to a target machine using Visual Studio's "Setup Project." How can I use the VIsual Studio setup project to do the following things:

  • Register the assembly (currently using regasm).
    • The assembly needs to be registered successfully and the type library (.tlb) needs to be registered successfully.
    • This answer suggests scrapping regasm in favor of custom code. I this is a good idea? If so, how does this code get included in the setup project?
    • This answer suggests using the /regfile command of regasm and then using the import tool on the Registry in the Setup Project. Will this work?
  • Install the assembly in the GAC (currently using gacutil)
    • I'm aware of the "Global Assembly Cache Folder" in the "File System on Target Machine." Is there anything special I need to do in including the assembly in the setup project?

Any other advice or concerns would be much appreciated.

like image 812
Ben McCormack Avatar asked Jun 21 '10 17:06

Ben McCormack


People also ask

How to register dll in GAC in c#?

dll file of the project in the GAC, follow these steps: In Visual Studio, create a new Visual C# Class Library project, and name the project GACDemo. In Visual Studio, you can use the IDE project properties to generate a key pair and sign your assembly.


1 Answers

Gacutil.exe won't be available on the target machine. Not a problem, MSI can get the job done. Right-click "File System on Target Machine", Add, GAC. Right-click that added folder, Add, Project Output. That ensures the assembly is gac-ed.

It can also register the assembly like Regasm.exe does. Set the Register property of the project output reference to vsdrpCOM.

like image 120
Hans Passant Avatar answered Oct 13 '22 07:10

Hans Passant