問題タブ [regasm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
com - RegAsm: アセンブリ 'A' のタイプ 'MyAlgorithms.MyAlgorithm' のメソッド 'LoadContent' には実装がありません
次のタイプがあります(以下のコード部分を参照)。これはコンパイルされますが、RegAsm は次のエラーを返します。
理由はありますか?LoadContent() メソッドを実装しないと、コンパイルされません。
ここでほぼ同じ質問を見ました: TypeLoadException は「実装なし」と言っていますが、実装され ていますが、役に立ちませんでした。
A、B、および C プロジェクトは同じソリューション内にあり、ビルド順序は C、B、および A です。
すべてのプロジェクトの「ビルド後のイベント コマンド ライン」には、次の行が含まれます。
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" /u $(TargetPath)
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" $(TargetPath)
"c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /u $(TargetName)
"c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /if $(ターゲットパス)
したがって、プロジェクト A は適切なアセンブリを参照していると思います。
MyAlgorithmBase クラスに次を追加すると、問題が解決するのはなぜですか。
protected override void LoadContent(PersistenceReader リーダー) { }
ありがとう!
ケーテ
.net - アセンブリが VS10 オブジェクト ブラウザに表示されない
相互運用アセンブリもあるサードパーティの DLL を使用する必要がある VB.Net プロジェクトがあります。だから私はこのようなものを持っています:
プロジェクトに相互運用機能への参照を直接追加しようとしましたが、ファイルを実行すると、COM が登録されていないというエラーが発生しました。
そこで、次のように相互運用を登録してみました。
VS を再起動した後でも、アセンブリはまだ表示されません。
.net - 強い名前で署名することについてレガズムが警告するのはなぜですか?
.NET アセンブリを COM サーバーとして使用できるようにするには、一連の属性を追加してから、regasm
それを COM サーバーとして登録する必要があります。
キーをregasm
使用して実行したときにアセンブリが厳密な名前で署名されていない場合、アセンブリが同じコンピューター上の他のアセンブリに干渉する可能性があるため、厳密な名前で署名する必要があるという警告が表示されますが、登録は成功し、正常に動作します。/codebase
RA0000
私の知る限り、厳密な名前は、いわゆる DLL 地獄を防ぐことを目的としています。しかし、COM は DLL 地獄を防ぐことも目的としていました。COM に公開されているインターフェイスを変更する場合は、GUID を変更するか、少なくともバイナリ互換性を維持する必要があります。そのため、厳密な名前で署名しても、何の役にも立たないようです。COM インターフェイスを壊してから、同じキーペアで署名して、本格的な DLL 地獄を持つことを妨げるものは何もありません。
COM に公開された .NET アセンブリの場合、厳密な名前で署名することの用途は何ですか?
.net - レガズムは機能しません
.NET COM オブジェクトを Web に登録するすべての例で、ジョブを実行するためのツール "regasm" を目にします。みんなそうだよ!!!
しかし、それは私にとってはうまくいきませんでした!私はそれを克服しようとするのにうんざりしています!私の唯一の解決策は、C++ でしか定義できない関数を必要とする regsvr32 です。
なぜうまくいかないのか教えてください!!!
Windows 7 を 2000 まで実行している 4 台のコンピューターすべてと 3 台の仮想マシンで動作しないことを考えると、regasm 呼び出しの実際の例を誰かに見せてもらえますか? 私はばかだと思います。
.net - x64システムでmsiから起動すると、Regasm.exeがセットアップに失敗します
インストールに問題があります。インストールでは、コマンドラインオプションを実行して、/codebaseオプションを指定して.netcomdllをregasm.exeします。
Setup.exeからインストール(installshieldによってビルドされた)を実行すると、すべてが正常に機能します。
代わりに.msiからインストールを実行すると、regasm呼び出しが成功せず、何も登録されず、プログラムが実行されません。
この問題はx64ベースのシステムにのみ影響するようで、x86システムではどちらの方法でも機能します。
問題が何であるかについて何か考えはありますか?
編集
問題は、管理者としてログインしても、msiが管理者として実行されないことのようです。まだUACダイアログが表示されますが、ウィザードの途中です。setup.exeから起動すると、ウィザードが表示される前にUACパネルが表示されます。から.msiを実行し、管理コマンドプロンプトを実行すると、UACパネルが表示されず、すべてが期待どおりに機能します。
それで、すべてが期待どおりに機能していると思いますか?そして、カスタムインストールアクションを正しく機能させるには、msiを管理者権限で実行する必要がありますか?
c# - 実行可能ファイルでRegAsmを使用できますか?
登録したいexeがあります。tlbexpツールを使用してタイプライブラリを使用していますが、実行可能ファイルを再起動しようとすると、が表示されますerror RA0000
。どうやら「操作はサポートされていません」?これの原因が何であるかはわかりません。さまざまなクラスライブラリのregasmを使用して他の多くの作業を行いましたが、実行可能ファイルを使用したことはありません。それで、それも可能ですか?もしそうなら、あなたは別の方法を使用する必要がありますか?
.net - C++ マネージおよびアンマネージ スタティック ライブラリ
簡単なコードを含むマネージ C++ アセンブリがあります。
このアセンブリには、(マネージド/アンマネージド) コードが混在しています。アンマネージ コードを別のアンマネージ スタティック ライブラリに配置し、それをマネージ コードにリンクすると、次のような登録エラーが発生します。
すべてのコードを 1 つのプロジェクトにまとめてビルドすると、すべて正常に動作します。VS2008 + .NET3.5 + RegAsm .Net2.0 で試しました。私のアセンブリは署名されています。
アンマネージ スタティック ライブラリとマネージ アセンブリのコード分離を保存したいと考えています。
私は何をする必要がありますか?
前もって感謝します。
com - .net アセンブリを com として登録する
ネイティブ コード DLL を呼び出す C# クラス ライブラリがあります。このコードを VBA から呼び出そうとしています。生成された DL を登録するように MSVC を構成したところ、正常に動作しました。DLL 内のオブジェクトにアクセスして、問題なく操作できます。それらを別のコンピューターに登録したいのですが、次のコマンドを使用しています: %windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /tlb /v MyNetAssembly.DLL
コマンドは正常に戻りますが、VBA で dll オブジェクトを使用しようとすると、エラー ファイルが見つかりません (80070002) が発生します。/codebaseオプションを使用して、dllが存在する場所へのパスを追加し、dllをWindowsディレクトリにコピーしようとしましたが、成功しませんでした。
何が問題で、どうすれば解決できますか?
com - TypeLibraryからプログラムでIDLコードを取得する
次の手順を実行するコードを書いています。
.net .dllを登録し、regasm.exeを使用して.tlbを生成します
- .net .dllを登録し、regasm.exeを使用して.tlbを生成します
- typeLibraryからIDLコードを生成し、ファイルに保存します。
- IDLコードを編集して、小さな変更を加えます。
- Midl.exeを使用して、IDLを.tlbに再コンパイルします。
ご想像のとおり、私が固執しているステップはIDLの生成です。これは、Windows APIに付属のOleViewerを使用して手動で実行できることはわかっていますが、この手動の手順を削除したいと思います。
コマンドラインからOleViewerを操作したり、IDLコードを生成する他の方法を見つけたりすることはできません。
誰かアイデアがありますか?IDLを生成するコードはOleViewerのどこかにある必要があることを私は知っています...おそらくそれにアクセスする方法はありますか?
.net - VB6 アプリケーションで使用する .NET dll の登録
VB6 アプリケーションで使用したい C# で記述した DLL があります。
VS2008 では、プロジェクト プロパティ "Register for COM interop" がチェックされ、DLL をコンパイルして開発マシンで使用しようとすると、正常に実行されます。
VS2008 がインストールされていないコンピューターで実行する必要があるため、この DLL を次のように登録しようとしました。
しかし、実行しようとすると、次のエラーが発生します。
自動化エラー。システムは、指定されたファイルを見つけることができません。
誰が私が間違っているのか教えてもらえますか?