2011-02-04 12 views
5

私は.NET VSTOアプリケーションを一度クリックして展開しています。アプリケーションのメインアセンブリは、インストールプロセスの一部としてCOM相互運用機能用に登録する必要があります。私はこれが "REGASM assembly.dll/tlb"を実行するコードを記述することによって実行できることを知っていますが、問題は、アプリケーションをインストールするターゲットワークステーションに管理者権限がないため、登録しようとするとregasmが失敗する型ライブラリレジストリエントリを追加せずにCOM interopの.NETアセンブリを登録することはできますか?

私の質問は、私が管理アクセス権を持っていないときに私の.netアセンブリをcomの相互運用性に登録する方法です。

+2

を参照してください。Reg-free COMはこれに対する通常の回答です。ちょうどオフィスアプリのためではなく、同じことをするために競合する余りにも多くのアドインがあります。そして、その過程であなたの目録を破る。とにかく展開することはできません。オフィスのインストールディレクトリに書き込むには管理者権限が必要です。非常にClickOnceの展開と互換性がありません。代わりに、ユーザーが「はい、私のマシンを手放す」と認めています。彼女があなたを信頼するなら、問題はない。 –

+0

これは私にとって(不幸な)答えのようです。私はコメントをチェックアウトすることはできません! –

答えて

3

あなたは、COMコンポーネントの登録のない活性化を使用することができます。私はclick-onceでデプロイされたアプリケーションでこれを使用し、うまくいきました。ここでは、始めるためにいくつかのリンクです:

Registration-Free Activation of .NET-Based Components

Walkthrough: Manually Deploying a ClickOnce Application

How To: ClickOnce deployment for unmanaged app with COM component in managed assembly

+0

答えとしてマークしますが、これはVSTOアプリケーションレベルアドインの実行可能なオプションではないことに注意してください。 –

1

できるとは思わない。間違っているかもしれませんが、COMの大きな部分は実際にレジストリを介して物事を見つける単なる方法です。レジストリを編集できない場合...あなたは困っています。

http://en.wikipedia.org/wiki/Component_Object_Model#Registry

+0

Hmm ..補足的な権利の不足はレジストリエントリを追加する方法がないということを前提にして正しいのですか? –

+1

レジストリ権限を持つ管理者である必要はありません。レジストリの権利が必要です。 http://support.microsoft.com/kb/310426 – madmik3

+0

パワーユーザーはレジストリに書き込むことができます。通常のユーザーよりも少し上のグループです。 –

1

それが依存しますシナリオが、おそらく登録無料のCOM(マニフェストを使用して)役立ちます。 this article

関連する問題