2

.NET COM オブジェクトを Web に登録するすべての例で、ジョブを実行するためのツール "regasm" を目にします。みんなそうだよ!!!
しかし、それは私にとってはうまくいきませんでした!私はそれを克服しようとするのにうんざりしています!私の唯一の解決策は、C++ でしか定義できない関数を必要とする regsvr32 です。
なぜうまくいかないのか教えてください!!!

Windows 7 を 2000 まで実行している 4 台のコンピューターすべてと 3 台の仮想マシンで動作しないことを考えると、regasm 呼び出しの実際の例を誰かに見せてもらえますか? 私はばかだと思います。

4

2 に答える 2

9

[ComVisible].NETアセンブリをRegsvr32.exeに登録することはできません。Regsvr32に必要なDllRegisterServerエントリポイントがありません。Regasm.exeまたはセットアッププロジェクトで動作させる必要があります。後者は、サーバーを別のマシンにデプロイするときに必要です。

いくつかの故障モードがあります。その他:

  • /codebaseオプションの使用を忘れています。アセンブリをGACにデプロイしない場合に必要です。これは、開発マシンでは実行しないでください。

  • 間違ったバージョンのRegasm.exeを使用しています。64ビットマシンには2つあり、Framework64ディレクトリには、クライアントコードが64ビットの場合に使用する必要があるディレクトリが含まれています。

  • 昇格されていないコマンドプロンプトから実行します。Regasm.exeは、レジストリのHKLMハイブに書き込みます。これは、UACが積極的に防止しているものです。これはVistaとWin7の問題です。

もちろん、アセンブリをひどく間違ってしまうことも可能です。1つ以上のインターフェースやクラスを作成しないように[ComVisible]。

于 2011-02-27T23:26:05.970 に答える
0

その可能性があります。以前にこの課題があり、cmdウィンドウでこのコードを実行したところ、.netフレームワークのバージョンに依存していることがわかりました。アセンブリは以下のコードをコピーして貼り付けます

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll

それがあなたのために働くなら、親切に投票してください。

于 2014-07-31T05:42:56.083 に答える