On Tue, 19 Dec 2006 22:06:53 +0300, Fredrik Grohn  
<[EMAIL PROTECTED]> wrote:

> The reason the TLB is required for .NET assemblies is because the TLB is  
> an
> installed resource that would need to be tracked in case you let
> RegistrationHelper create it. The file would for instance be left behind  
> on
> the system if you don't explicitly remove it when the component is  
> removed.
> Also I think that if you install an assembly in the GAC you will end up
> dumping the generated TLB in the Windows\Assemblies directory.

Yes, but on uninstall it will deleted by RegistrationHelper.

> Providing  the
> TLB with the installer removes some complexity from the CA's, and also an
> installation step that might potentially fail.
>

In some situations it creating impasse.

For describe, more detail example :
Third party product install to GAC assembly AssemblyX.dll. AssemblyX.dll  
contain interface IAssemblyX.
My product contain assembly MyAssembly.dll and MyAssembly.TLB, install  
MyAssembly to GAC and install as COM+. MyAssembly.dll contain COM+ object,  
that inherit interface IAssemblyX from AssemblyX.

WiX CA failed, because of RegistrationHelper.InstallAssembly can't load  
MyAssembly.TLB without AssemblyX.TLB.
At now, no way to do it with standart WiX COM+ CA.
Analogous regsvcs utility command "regsvcs.exe /extlb /tlb:MyAssembly.tld  
MyAssembly.dll" also failed.

> Are you saying that you have a scenario where you can not generate the  
> TLB file at build time and include it in the MSI?
Right.

In my modified COM+ CA code i use RegistrationHelper.InstallAssembly()  
without flag ExpectExistingTypeLib and without TLB file. (see attach)

It simplify COM+ authoring in WiX - there is no need to generate TLB and  
less WiX script code.

> If you have dependencies on external TLB's you should be able to register 
> these separately, no?

In my case, external depended assemblies is not COM+ and have not  
generated TLB files.

--
Alexander Biryukov


> Fredrik

>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Alexander
> Biryukov
> Sent: Monday, December 18, 2006 1:30 PM
> To: wix-users@lists.sourceforge.net; Neil Sleightholm
> Subject: [WiX-users] Install .Net COM+ without .TLB
>
>
> Wix COM+ CA (pcaexec) does not allow to install COM+ .Net assembly  
> without
> TLB file, but basically it possible.
>
> In some situations COM+ assembly depend of external interfaces of another
> ..Net assemblies. It required more than one .TLB file to install
> COM+ assembly, but WiX allow set only one TLB file for 'ComPlusAssembly'
> element.
>
> I suggest to optional set attribute 'TlbPath' at 'ComPlusAssembly'
> element. If 'TlbPath' attribute absent, then use method, that install
> assembly without TLB (internally generated tlb). Same method used by
> regsvcs.exe .Net utility.
>
> I can send simply modified code of ca\pubca\pcaexec\cpiasmexec.cpp, that
> install .Net COM+ without TLB file.
> It code already work properly during 2-3 monthes in our products
> installers.
>
> P.S.
>    It all about Wix2 (i think in Wix3 similar)
>
> --
> Alexander Biryukov
>


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to