cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Mark_Briggs
Level 3

Does Limited Edition support installation of COM+ objects?

I have created a very simple COM+ object in VS2013, and Visual Studio automatically registers on the machine that I build it on. I created a simple VBScript test (using the CreateObject command), and it works fine on my dev/build machine. I then added an Install Shield project to the solution, configured it and successfully built the solution. The install files were created, which I copied to a test machine. I then ran the installer on that test machine, and everything appeared to go fine, the DLL file was copied to the specified installation directory. Unfortunately, the exact same test script file that runs on my dev machine fails to load the object on the test machine. I'm using wscript.exe at a command prompt to execute the script, and I tried the test on both the 32- and 64-bit versions of wscript.

- Does ISLE support this scenario?
- If so, how can I troubleshoot this? I'm far from an expert at COM+, and I'm not sure how to examine windows to see if the object is registered properly.
- If not, does anyone know of a work-around?

Thanks in advance for your help!
0 Kudos
(4) Replies
NameTooShort
Level 7 Flexeran
Level 7 Flexeran

Hi,

Check the Properties of the dll you included.
Does it have the right registration type selected in the COM & .NET Settings tab?
0 Kudos
Mark_Briggs
Level 3

kyi wrote:
Hi,

Check the Properties of the dll you included.
Does it have the right registration type selected in the COM & .NET Settings tab?


I'm not sure which properties you're referring to; if you mean the windows properties, there is no registration info displayed.

Additional Details:
The .NET project compile property "Register for COM interop" is checked, and the assembly is signed (has a strong name key file associated).
In the InstallShield setup project (which is in the same solution as the test class being compiled), under section 2 - Files - [GlobalAssemblyCache] section, I added a reference to the "Primary output From PSTest", (PSTest is the project name and the name of the compiled DLL file).

I can get the DLL to work only if I manually run the following at a VS command prompt:
regasm pstest.dll /tlb:PSTest.tlb
gacutil /i PSTest.dll

I can then run the VBScript test that accesses the DLL via COM using this command:
%windir%\SysWOW64\wscript.exe comtest.vbs

It would really be nice if InstallShield would handle that...
0 Kudos
NameTooShort
Level 7 Flexeran
Level 7 Flexeran

Hi,

Right click on your dll in the Files view and there should be a Properties option.
When the Properties tab appear, there should be a COM & .NET Settings tab.
0 Kudos
Mark_Briggs
Level 3

kyi -

That did it, thank you very much!

Just curious, is that documented somewhere?
0 Kudos