cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Pilgrim

Simple Question

I have several COM dll's and dot net assemblies.

I've added these to my BASIC MSI project using the Add Component Wizard.

My question... Will these DLL's automatically be registerred (regsvr32 for COM and (regasm for Dot Net) when the project is installed?

If I look at the individual COM components in the IS project, they do have registry entries listed when I expand/select the Registry option under the Components expanded tree.

Please advise as it's not 100% clear to me.
Thanks...
Labels (1)
0 Kudos
9 Replies
Highlighted
Pilgrim

Re: Simple Question

Depending on your project settings, COM information might be extracted once and stored in the COM-related MSI tables (Class, ProgId, etc.) or extracted during each build. There are several advantages to doing this, rather than using old-style self-registration (calling DllRegisterServer or running regsvr32.exe), such as supporting product advertisement, handing rollback correctly, and others.
0 Kudos
Highlighted
Pilgrim

How to Register OCX, dll and dot net dlls

I am new to InstallShield 2008, and created the InstallScript Project, there are OCX, COM, and dot net dlls. previously we use the regsvr32.exe for COM and OCX, RegAsm.exe /codebase DotNet.dll /tlb. How can I register those files through InstallShield 2008, Thanks
0 Kudos
Highlighted
Pilgrim

Re: Simple Question

In an InstallScript project, you can put your COM DLLs and OCXs into one or more components with the Self-Register property set to Yes, and the run-time will register them...
0 Kudos
Highlighted
Pilgrim

Dotnet DLL can not be registered

RobertDickau wrote:
In an InstallScript project, you can put your COM DLLs and OCXs into one or more components with the Self-Register property set to Yes, and the run-time will register them...



Thanks for your suggestion, I tried to put the .net DLL and ocx into one component with the self- register property set to yes, the ocx was registered, but the .net DLL could not be registered. we can manually register it by command line: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /codebase DotNet.dll /tlb. But can not register it using the installshield in the component, is there any other way to register it? We need to deploy the .net dll to end user. How we do that?
0 Kudos
Highlighted
Pilgrim

Re: Simple Question

For the .NET dlls you need to turn on ".NET COM Interop" for the component that they're in.

Turn off the "Self Register" box on the file itself.

You should be all set after that.
0 Kudos
Highlighted
Pilgrim

I could not get DOTNETCOM.dll registered

Thank you very much for your solution, I did the way you said, but I still can not get it registered, here is what I did: See the attachment
0 Kudos
Highlighted
Pilgrim

Re: Simple Question

This is what I've done in the past and its has worked properly for me.

I have not, however, used the .NET Precompile Assembly setting set to Yes.

Sorry this hasn't worked for you.

Perhaps you need a custom action that calls Regasm?
0 Kudos
Highlighted
Pilgrim

I successfully regasm by custom action and script function.

Thanks for your suggestion, I successfully regasm by custom action and script function. I am glad it is working now
0 Kudos
Highlighted
Pilgrim

Similar issue in the past

I had a similar issue in the past and even did the regasm via custom actions (and I had a lot of dll's 😉 ).

The fix to do it correctly was to set the component property(s) '.NET Scan at build' to 'Properties only'. 'Dependancies and Properties' is the default which caused the issue for me.
0 Kudos