問題タブ [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.

0 投票する
0 に答える
3161 参照

c# - 他のマシンで COM 相互運用用の DLL を登録するにはどうすればよいですか?

2 つの参照ライブラリを使用して C# で ActiveX ライブラリを作成し、それを COM 相互運用に登録し、Visual Studio で厳密な名前のキーを使用して署名しました。正常に動作しますが、別のコンピューターに登録したいと思います。DLL を登録するために /codebase で regasm を使用しましたが、ActiveX オブジェクトをインスタンス化しようとすると、デバッガーがエラーをスローします: オートメーション サーバーはオブジェクトを作成できません。スクリプトを実行しても安全だとマークされていないコントロールを初期化できるように Internet Explorer を既に構成しましたが、役に立ちませんでした。

0 投票する
1 に答える
1572 参照

c# - 複数のdllを参照するdllを登録する

わかりました。2つの質問があります。ここでピクルスになって1週間います。

重要-これをビルドまたは実行するアプリケーションはありません。特定のフォルダに配置されるのは単一のクライアント側dll(他のいくつかのdllを参照する)であり、regasmなどを使用してこのdllを登録する必要があります。

概要:

だから私はac#COMScannerController.dllを書いています。ScannerControllerは、c:\ Program Features \ etc ....全体のフォルダーに既にインストールおよび登録されている5つのサードパーティdllを参照します(場所は、使用しているソフトウェアのバージョンによって異なりますが、dllは同じ。)

この1つのdll(integration.ActiveX(アセンブリ))には、InstalledPathというメソッドがあります。InstalledPathは、実行中のアセンブリの実際の場所を返します。dllが完成したら、IExplorerを実行すると、正しい「../programfeatures/....」が返されていました。

次に、別のコンピューターでセットアップするために、登録を解除してから、いくつかのregasmsを実行し、dllを「Scanner / bin / debug / integer.ActiveX」(oleviewは依存関係を見つけることができないと言っています)に登録したので、登録を解除しましたそれはvs2012でビルドされ、IExplorerから実行すると、InstalledPathは「../bin/debug/」になります。新しいプロジェクトを作成し、それを自動登録してビルドし、iexplorerから実行すると、InstalledPathは「..Scanner-fake / bin /debug/」になります。cmdで何百万回も登録を解除しましたが、何をしても、登録されたScannerControllerのデバッグフォルダーを常に指しているようになりました。

質問1:

regasmなどを使用してCOMScannerController.dllを登録し、ScannerControllerが参照する5つのサードパーティdllを指すようにするにはどうすればよいですか?

質問2:

Integration.dllがコンピューターのローカルパスに存在しない場所に修正しようとしたので(ビルドしているため)、ローカルコピーをfalseに設定しました。ビルドしてoleviewで表示すると、依存関係をロードまたは検出できないと表示されます。コピーlocal=falseを使用して、参照が他のサードパーティのdllを見つけることができるように、プロジェクトを設定するにはどうすればよいですか?

長い質問で申し訳ありませんが、読んで私を助けようとしてくれてありがとう。私はこれを高低で検索しましたが、今は精神的に疲れています。

0 投票する
1 に答える
399 参照

c# - RegAsmを使用した後にDLLを上書きする

Excel VBAから使用するC#DLLを作成しました。開発マシンでDLLをコンパイルし、DLLファイルとTLBファイルを開発サーバーに移動しました。

RegAsmを使用してDLLを登録しましたが、これは正常に機能しました。次に、VBAを開き、.TLBファイルへの参照を追加しました。次に、VBA内でクラスを使用しましたが、すべて正常に機能しました。

これで、c#クラスライブラリに変更を加え、ライブラリをコンパイルしましたが、開発サーバーにファイルを上書きしようとすると、別のプロセスで使用されているためにロックされます。

RegAsm / unregisterを使おうとしましたが、それでも役に立ちませんでした。

前もって感謝します。

0 投票する
3 に答える
2632 参照

c# - Windows 7 で .dll を RegAsm に登録できない

C# で記述された winforms アプリケーションに QuickTime 2.0 ActiveX プラグインを使用しようとしています。

まず、オブジェクトをツールボックスからフォームにドラッグしますが、ActiveX コントロールをインポートできないというエラーが表示され、正しく登録されていることを確認します。ソリューション エクスプローラーの参照ヘッダーの下に、AxQTOControlLib 参照が失敗したと表示されます。

これを解決するために (解決策を検索した後)、AxImp を使用して、QuickTime プログラム ファイルにある QTOControl.dll からコントロールに関連する C# ラッパーを作成しました。

次に、RegAsm を使用して .dll をシステムに登録しようとしましたが、これを行うと次のエラーが発生します。

「RegAsm : エラー RA0000 : ファイルまたはアセンブリ 'QTOControlLib、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。」

確認したところ、ファイルは確実に存在し、パスは正しいです。

.dll を登録し、Winforms アプリケーションで QuickTime ActiveX コントローラを使用できるように、この問題を解決する方法を教えてください。

次のセットアップを使用しています。

Windows 7 (64 ビット) Visual Studio 2010 .Net 4.0

0 投票する
1 に答える
3401 参照

.net - Easiest way to make .NET DLL visible to COM?

I have a proprietary .NET DLL which I would like to use in a COM client.

Currently when I use regasm it says: warning RA0000 : No types were registered

Since I don't have the source code I can't set the classes to ComVisible or whatever else is required.

How can I easily make this DLL visible to COM?

0 投票する
0 に答える
3196 参照

windows-7 - 管理者権限が必要なため、COM 登録に失敗しました

COM コンポーネントの登録中にエラーが発生します。コマンドラインから次のエラーが表示されます

RegAsm : error RA0000 : レジストリへの登録情報の書き込み中にエラーが発生しました。選択したオプションを使用するには、管理者権限が必要です。これらのタスクを完了するには、管理者コマンド プロンプトを使用します。

Visual Studio の登録から、エラーが発生しています

エラー MSB3216: アセンブリ "xxxxxxx.dll" を登録できません - アクセスが拒否されました。不正な操作を実行しようとしました。

すべての更新プログラムがインストールされた Windows 7 64 ビットを使用しており、UAC を無効にしています。問題に見えるのは?

0 投票する
1 に答える
1386 参照

c# - 64 ビット タイプ ライブラリと 32 ビット タイプ ライブラリが同期していない

この問題が原因で数日間頭が痛くなり、その理由がわかりません。これは私のマシンに固有の環境問題であると確信していますが、それでもテストで問題が発生します。

Visual Studio 2010 Professional を使用して C# で DLL を作成しています。バージョン 1 は以下のとおりです。

このアセンブリは問題なくコンパイルされ、すべて問題ありません。次のスクリプトを実行して、COM オブジェクトとして登録します (最初は 32 ビット用、次に 64 ビット用)。

次に、次のスクリプトを使用してテストします。

csript を使用してスクリプトをテストするので、使用するビット深度を制御できます。32 ビットで 1 回、64 ビットで 1 回テストします。これまでのところ、すべてが良好です。

ここで、元のアセンブリを変更して関数を追加すると、次のようになります。

変更の前に、「regasm /unregister」を使用してライブラリの登録を解除すると、すべてのタイプが正常に登録解除されたと報告されました。

ライブラリを登録すると、変更が加えられ、元のテスト スクリプトが完全に機能します。テスト スクリプトを拡張して、新しい HelloWorld 関数を呼び出すとします。

32 ビット スクリプトでは、完全に機能します。64 ビット スクリプトでは、TestCOM.Class1 オブジェクトに対してそのような関数が存在しないというエラーが表示されます。

私はこれをあらゆる方法で試しましたが、新しい関数が 32 ビットの呼び出し元で使用できるのに、64 ビットの呼び出しでは使用できない理由を特定できません。

私は何を間違っていますか?私が認識していない64ビットのもののどこかにキャッシュがありますか、またはレジストリ設定を変更する必要がありますか?

明確にするために。1. アセンブリをビルドする 2. regasm を使用して登録する (32 用に 1 回、64 用に 1 回) 3. スクリプトを使用してテストする - すべてが機能する 4. ライブラリを登録解除する 5. 変更を加え、再構築する 6. ステップ 2 に従って登録する 7. テストは 32 ビットで動作する、しかし64ではありません。

0 投票する
0 に答える
263 参照

c# - regasm を使用してカスタム DLL を登録できません

winXP で登録していたカスタム dll がありますが、今は win7 で同じものを使用したいのですが、 regasm に登録できません。

依存関係の 1 つが見つからないというエラーが表示されます。

私はそれを明示的に追加しましたが、テストエージェント2010でも自動的に追加されますが、

上記のアセンブリを手動で登録しようとしましたが、それも失敗しました。これに対するエラーは「登録されているタイプがありません」でした。

誰かアドバイスしてください。

0 投票する
1 に答える
527 参照

wix - WIX インストーラーを使用して dll を登録できない

contextmenu シェル拡張 dll があります。Heat.exe を使用して dll のコンポーネントを作成しましたが、インストールでは完全に正常に動作します。しかし、wix インストーラーを使用して dll を登録できません。さまざまなオプションを試しましたが、何も機能していません。

regasm.exe /codebase Myfile.dll を使用して手動で登録しようとすると、機能します。

0 投票する
1 に答える
263 参照

dll - シェル拡張から DLL をロードする方法は?

小さなシェル エクステンションを作成しました。スタブは機能しますが、SQLite データベースから情報を読み取る必要があります。

SQLite には 2 つの DLL が必要です。

  • System.Data.SQLite.dll: マネージドのみのコア アセンブリ
  • SQLite.Interop.dll: ネイティブ相互運用アセンブリ

過去に、これら 2 つの DLL を.exeファイルと同じフォルダーに配置することで、デスクトップ アプリケーションを正常に構築できました。
しかし、シェル拡張の場合、ファイルのようなものは存在しない.exeので、これらの DLL をどこに配置すればよいのでしょうか?

注: 現在、シェル拡張機能をRegasmで展開していますが、将来的にはWiXで展開する予定です。