1

セットアップの作成にはInnoSetupを使用しています。すべて正常に動作しますが、問題が発生します。.NETDLLを登録して、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-それに加えて、それを行う方法と、そこからのアイデアを適応させて、仕事をするための小さなプログラムを作成します。

于 2012-08-27T08:13:06.600 に答える