1

我使用 Inno Setup 来创建我的设置。一切正常,但我遇到了问题:如何注册 .NET DLL 以使其可被 COM+ 访问。众所周知,.NET 带来RegSvcs.exe了这一点,所以我检查了 Inno Setup 文档,只发现 gacinstall 用于程序集注册,但不用于 COM+ 交互。所以我在[Run]部分添加了这个

; register .Net components for com+
Filename: {win}\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe; Parameters: "{app}\bin\Common.dll"; Description: Component registration; WorkingDir: {app}\bin; StatusMsg: Component registration...; Flags: waituntilterminated

但是通过测试设置,这一行就被跳过了。该 DLL 在之前的部分中被复制到目标[Files]并且可用。设置后,我也可以从命令行手动运行 RegSvcs.exe,而不会出现问题。

4

1 回答 1

1

Inno Setup 是否按预期工作!

我的问题是: RegSvcs.exe 使用错误的凭据安装组件。它安全地安装了 COM+,interactive user但是当我从服务中调用它时,没有用户,所以我需要SYSTEM作为凭据。

解决方案: 编写一小段代码,在注册后修改安全凭证。我没有找到任何选项标志来直接告诉 regsvcs.exe 它。在这里找到了一个帖子http://www.carlosag.net/articles/configure-com-plus如何做到这一点,现在将从那里调整想法来编写一个小程序来完成这项工作。

于 2012-08-27T08:13:06.600 回答