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