Groups | Blog | Home
all groups > dotnet setup > january 2006 >

dotnet setup : Newbie at creating installation packages. Please help


Anthony Yott
1/30/2006 10:17:27 AM
Folks,

I have a set of assemblies (that need to be installed in the GAC) and a type
library will need to be registered during installation that I would like to
package to an MSI. I"m using VS 2005 and in looking at the setup Wizards it
doesn't appear that it gives you an option of installing the assemblies to
the GAC. Is the setup wizard capable of doing this? Is their a tool better
suited for doing "custom" builds? Any links, thoughts, etc would be greatly
appreciated.

Thank you in advance,
Phil Wilson
1/30/2006 11:25:02 AM
Three articles here, the first shows you how to get assemblies in the GAC:
http://www.simple-talk.com/2005/04/25/getting-started-with-setup-projects/
http://www.simple-talk.com/2005/06/07/visual-studio-setup/
http://www.simple-talk.com/2005/07/18/updates-to-setup-projects/

To register the type library, just put it in the Application Folder - the
properties for the TLB will show vsdrfCOM by default IIRC and the install
will register the type library.
--
Phil Wilson [MVP Windows Installer]
----
[quoted text, click to view]

Anthony Yott
2/2/2006 7:32:54 AM
Phil, some quick questions or should i say observations.

If I take your approach below by including the Type Lib in the MSI Install
and setting the type lib's register property to vsdrfCOM then calls from my
clients fail.

However, if i exclude the tlb from the build and I set the register property
of my assembly (which has ComVisible = True) to vsdrfCOM then everything
works fine. I'm not sure how though because I cannot find the type library
anywhere on the file system.

Do you have any thoughts on this that might help me understand what is going
on.

BTW, thank you for the links and your comments. They were helpful.
--
Anthony Yott


[quoted text, click to view]
Phil Wilson
2/3/2006 7:52:48 AM
At a minimum you need to get the assembly registered. Whether you also need
to tlb registered is hard to say, but legacy COM Dlls have always registered
their type libraries by default, regasm does the same, so it's safer to just
create a type library and register it. The key here is that an MSI setup
does not register a type library for your assembly as regasm would, so you
have to do it in MSI setups. The type library provides type info to
developers who might want to early-bind to your COM interfaces with
unmanaged code, and it might be required at run time to marshal data to and
from client callers.
--
Phil Wilson
[Microsoft MVP-Windows Installer]

[quoted text, click to view]

AddThis Social Bookmark Button