Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
831 views
in Technique[技术] by (71.8m points)

wix - 这种安装COM +的方法行得通吗?(Would this method of installing COM+ work?)

I've been trying to use WiX 3.7 to install a COM+ assembly .

(我一直在尝试使用WiX 3.7安装COM +程序集 。)

I've been using several WiX code snippets I found here on StackOverflow.

(我一直在使用在StackOverflow上找到的几个WiX代码段。)

Although I can generate an MSI, when I then install the msi it fails with errors that look like this:

(尽管我可以生成MSI,但是当我安装MSI时,它会失败,并显示如下错误:)

RegisterComPlusAssemblies: DLL: C:Program FilesKutanaKapprisCarson.dll
ComPlusInstallExecute:  ExceptionInfo: Code='0', Source='System.EnterpriseServices',    Description='Could not install type library 'C:Program FilesKutanaKapprisCarson.tlb' into application 'COM+ Carson - Kappris Print Cache'.', HelpFile='', HelpContext='0'
ComPlusInstallExecute:  Error 0x80020009: Failed to invoke RegistrationHelper.InstallAssembly() method
ComPlusInstallExecute:  Error 0x80020009: Failed to register .NET assembly
ComPlusInstallExecute:  Error 0x80020009: Failed to register assembly, key: MyComPlusAssembly
ComPlusInstallExecute:  Error 0x80020009: Failed to register assemblies

No matter what I try I can't do this with WiX.

(不管我尝试什么,我都无法使用WiX做到这一点。)

I know other people have had the same problem installing COM+ with WiX but I don't think anyone's got further than blaming WiX.

(我知道其他人在用WiX安装COM +时也遇到了同样的问题,但是我认为没有人会责怪WiX。)

I wondered if it would be OK to manually export the COM+ application from the Component Services control panel, which creates an MSI installer.

(我想知道是否可以从创建MSI安装程序的组件服务控制面板中手动导出COM +应用程序。)

And then I could use dark.exe to generate WiX source code from the MSI.

(然后,我可以使用dark.exe从MSI生成WiX源代码。)

I've actually done this and I can build an MSI that installs the COM+ App.

(实际上,我已经做到了,并且可以构建一个安装COM + App的MSI。)

But is this a good idea?

(但这是个好主意吗?)

I have misgivings: Firstly, the component now gets registered in the GAC even though when I manually registered the assembly using regsvcs it wasn't in the GAC.

(我有一个疑虑:首先,即使当我使用regsvcs手动注册该程序集时,该组件现在也已在GAC中注册,而该组件不在GAC中。)

Secondly, the exported MSI contains three files - the dll, its associated tlb and another 'APL' file which is an undocumented internal format generated as a side-effect of the export.

(其次,导出的MSI包含三个文件-dll,其关联的tlb和另一个“ APL”文件,该文件是作为导出的副作用而生成的未记录的内部格式。)

What problems can people see using this method of installing a COM+ App?

(人们使用这种安装COM + App的方法会看到什么问题?)

Should I worry that I don't know anything about the APL file?

(我应该担心我对APL文件一无所知吗?)

If you can tell me how to do it using WiX I'd be happy with that.

(如果您能告诉我如何使用WiX做到这一点,我会很高兴的。)

Just looking to be able to do the installation...

(只是希望能够进行安装...)

  ask by Brian THOMAS translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

COM+ Deployment : I have only dealt with COM+ a few times, even though I am an experienced setup developer.

(COM +部署 :即使我是一位经验丰富的安装开发人员,我也只处理过几次COM +。)

It seems genuinely messy to deal with, extremely poorly documented and worst of all: causing intermittent problems - the worst kind of problems to debug since I experienced different results on different MSI runs.

(处理起来似乎很杂乱,记录极差,而且最糟糕的是:导致intermittent problems -调试最糟糕的问题,因为我在不同的MSI运行中遇到了不同的结果。)

Generally it worked, but sometimes it crashed, and then it crashed repeatedly at some points.

(通常它可以工作,但有时会崩溃,然后在某些时候反复崩溃。)

I tested a lot.

(我测试了很多。)

I concluded that since COM+ is some sort of event queue for distributed events (I don't know too much about the technology) there are ample opportunities for confounding variables during each setup run.

(我得出的结论是,由于COM +是某种分布式事件的事件队列(我对该技术不太了解),因此在每次设置运行期间都有足够的机会混淆变量。)

Component Services : I believe I ended up using the exported MSI from Component Services at one point, and at other points I set up the COM+ application on the system and imported it to Installshield at build time.

(组件服务 :我相信我最终会使用从组件服务导出的MSI,在其他时候,我在系统上设置了COM +应用程序,并在构建时将其导入到Installshield。)

As I recall there were problems with both approaches.

(我记得这两种方法都存在问题。)

I don't remember all the details, it was long ago.

(我不记得所有的细节,那是很久以前的事了。)

Installshield registered fewer COM settings than the exported COM dll from component services.

(Installshield注册的COM设置少于从组件服务导出的COM dll。)

I never figured out why, even after talking to Installshield support.

(即使与Installshield支持人员交谈后,我也从未想出原因。)

It was also necessary to have the application properly installed on the build system to be able to import it.

(还必须在构建系统上正确安装该应用程序才能导入它。)

Hassle and undesirable on a build computer.

(麻烦和不希望在构建计算机上。)

APL File : If I were you I would use the exported MSI as it is, and perhaps run it separately along with another MSI installing the rest of your application - embed it all in a batch file or use a bootstrapper.

(APL文件 :如果您是我,我将按原样使用导出的MSI,并且可能与安装您的应用程序其余部分的另一个MSI一起单独运行-将其全部嵌入批处理文件或使用引导程序。)

I definitely remember trying to change the exported MSI and have it break repeatedly in the process.

(我绝对记得要尝试更改导出的MSI,并在此过程中反复中断它。)

Some sort of problem with the APL file not being applied properly to the COM+ application (the APL file is some sort of COM+ settings file that I never understood - largely undocumented).

(APL文件未正确应用于COM +应用程序时出现某种问题(APL文件是某种我从未理解过的COM +设置文件-很大程度上未记录)。)

Again: extremely poorly documented the whole process, and I never figured out why it happened.

(再说一次:对整个过程的记录非常差,而我从来不知道为什么会这样。)

Sorry for not being of more help, but I will still post this to ensure this information is out there and people know what they are getting into with COM+.

(抱歉,没有更多帮助,但是我仍然会发布此信息,以确保该信息在那里,并且人们知道他们对COM +的了解。)

Use the exported MSI from Component Services is my advice, and don't touch it after export.

(我的建议是使用从Component Services导出的MSI,导出后请勿触摸。)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...