2011-10-17 19 views
0

Office VBA(現在はDynamicsのVBAコードから呼び出されている)によってアクセスされるC#(.NET 4.0)で管理ActiveXコントロールを作成しました。しかし、これを私たちの会社の大衆に展開する方法を探して(そして更新しておく)、効率的な方法を見つけることができません。Mass deploy C#.NET 4.0で書かれた管理ActiveXコントロール

まず、私はClickOnceを通じて何とかこのことをやり遂げることができると考えましたが、いくつかの記事を読んだ後、これはうまくいくとは思いません。

提案はありますか?おそらくPowerShell?

新しい機能を追加するには、このコントロールをいくらか頻繁に更新する必要があります。

アドバイスは大歓迎です。お時間を

おかげで、

ロブ

答えて

-1

あなたがregasm.exeユーティリティを使用することができます。foo.dllはあなたが公開するActiveXコントロールを含むマネージアセンブリがある

regasm.exe /codebase foo.dll 

2

まだClickOnceを除外しないでください。 ClickOnceの問題点は、マシン単位/システム単位ではなく、のアプリケーションをインストールすることです。 COM/ActiveX登録は通常マシン/システム全体で行われるため、レジストリエントリはHKLMの下にあるため、ClickOnceはサポートしていません(レジストリのHKLM部分を変更するために必要な権限があるため)。

Windows 2000以降、レジストリのユーザー部分にCOMオブジェクトを登録することができます。HKEY_CURRENT_USER\Software\ClassesHKEY_LOCAL_MACHINE\SOFTWARE\Classesにマップされ、HKEY_CLASSES_ROOTと同じです。

RegSvrExのように、HKCUの下に作成する必要があるレジストリエントリを確認する必要があります。これを実行したら、ClickOnceのインストール/アップデートが実行されたときにこのHKCU regアップデートを起動する方法を見つけてください。

+0

こんにちはダンカンさん、ありがとうございます。私はその記事を読んでいますが、それは私が何をしているのかに直接当てはまるとは思わない。ホスティングアプリケーションは、Dynamics(または、同様の図ではExcelの場合)になります。 Excel内でコードウィンドウに移動し、ツール - >参照を選択し、ActiveX(C#4.0)コントロール(regasmで登録済み)を追加します。私は75台以上のコンピュータでregasmを実行することを避けることを望んでいました。また、ActiveXコントロールを一度配布した後は、ActiveXコントロールをどのように更新するかはわかりません。私はその記事から何かを逃していますか、あなたが私を指すことができる他の方向はありますか?ありがとう! – Rob

+0

実際に私は答えを更新します。私はマシン(HKLM)ではなく、ユーザーのレジストリ(HKCU)の下にCOMオブジェクトを登録することを考えていました –

+0

こんにちはダンカン、更新していただきありがとうございます。だから私はRegSvrExを使用するPowerShell/WMIソリューションを作成する必要があるのだろうかと思います。興味深いアイデア... – Rob

関連する問題