8

昨日、C#でCOMオブジェクトを作成した結果、VS2010プロジェクトのbin/ releaseディレクトリに3つのファイル(comclass.dll、comclass.pdb、comclass.tlb)が作成されました。これで、プロジェクトでソリューションをビルドすると、VSが開発用PCにクラスを自動的に登録し、PowershellなどからCOMオブジェクトとそのメソッドに問題なくアクセスできるようになりました。ただし、3つのファイルを別のマシンにコピーして、dllをzippy32に登録しようとすると、次のように表示されます。

モジュール「comclass.dll」がロードされましたが、エントリポイントDllRegisterServerが見つかりませんでした。

「comclass.dll」が有効なDLLまたはOCXファイルであることを確認してから、再試行してください。

.tlbファイルのパラメーターを使用regasmすると/tlb、同様のメッセージが表示されます。だから私は少し困惑しています。誰かが私がここからどのように進むべきか知っていますか?

4

1 に答える 1

11

dllをコピーするだけです (スタック トレースにファイル パスと行番号が必要な場合は、必要に応じてpdbもコピーします)。これを登録すると、tlbが作成されます。

"%WINDIR%\Microsoft.NET\Framework\v2.0.50727\regasm.exe" comclass.dll /tlb /nologo /codebase

Visual Studio はそれを正常に登録するので、うまくいくかもしれません。そうでない場合は、リビルド中に [出力] パネルを開いて、Visual Studio がどのように を呼び出すかを確認することもできますregasm

于 2011-07-11T22:32:40.827 に答える