問題タブ [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.
c# - 他のマシンで COM 相互運用用の DLL を登録するにはどうすればよいですか?
2 つの参照ライブラリを使用して C# で ActiveX ライブラリを作成し、それを COM 相互運用に登録し、Visual Studio で厳密な名前のキーを使用して署名しました。正常に動作しますが、別のコンピューターに登録したいと思います。DLL を登録するために /codebase で regasm を使用しましたが、ActiveX オブジェクトをインスタンス化しようとすると、デバッガーがエラーをスローします: オートメーション サーバーはオブジェクトを作成できません。スクリプトを実行しても安全だとマークされていないコントロールを初期化できるように Internet Explorer を既に構成しましたが、役に立ちませんでした。
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を見つけることができるように、プロジェクトを設定するにはどうすればよいですか?
長い質問で申し訳ありませんが、読んで私を助けようとしてくれてありがとう。私はこれを高低で検索しましたが、今は精神的に疲れています。
c# - RegAsmを使用した後にDLLを上書きする
Excel VBAから使用するC#DLLを作成しました。開発マシンでDLLをコンパイルし、DLLファイルとTLBファイルを開発サーバーに移動しました。
RegAsmを使用してDLLを登録しましたが、これは正常に機能しました。次に、VBAを開き、.TLBファイルへの参照を追加しました。次に、VBA内でクラスを使用しましたが、すべて正常に機能しました。
これで、c#クラスライブラリに変更を加え、ライブラリをコンパイルしましたが、開発サーバーにファイルを上書きしようとすると、別のプロセスで使用されているためにロックされます。
RegAsm / unregisterを使おうとしましたが、それでも役に立ちませんでした。
前もって感謝します。
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
.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
?
windows-7 - 管理者権限が必要なため、COM 登録に失敗しました
COM コンポーネントの登録中にエラーが発生します。コマンドラインから次のエラーが表示されます
RegAsm : error RA0000 : レジストリへの登録情報の書き込み中にエラーが発生しました。選択したオプションを使用するには、管理者権限が必要です。これらのタスクを完了するには、管理者コマンド プロンプトを使用します。
Visual Studio の登録から、エラーが発生しています
エラー MSB3216: アセンブリ "xxxxxxx.dll" を登録できません - アクセスが拒否されました。不正な操作を実行しようとしました。
すべての更新プログラムがインストールされた Windows 7 64 ビットを使用しており、UAC を無効にしています。問題に見えるのは?
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ではありません。
c# - regasm を使用してカスタム DLL を登録できません
winXP で登録していたカスタム dll がありますが、今は win7 で同じものを使用したいのですが、 regasm に登録できません。
依存関係の 1 つが見つからないというエラーが表示されます。
私はそれを明示的に追加しましたが、テストエージェント2010でも自動的に追加されますが、
上記のアセンブリを手動で登録しようとしましたが、それも失敗しました。これに対するエラーは「登録されているタイプがありません」でした。
誰かアドバイスしてください。
wix - WIX インストーラーを使用して dll を登録できない
contextmenu シェル拡張 dll があります。Heat.exe を使用して dll のコンポーネントを作成しましたが、インストールでは完全に正常に動作します。しかし、wix インストーラーを使用して dll を登録できません。さまざまなオプションを試しましたが、何も機能していません。
regasm.exe /codebase Myfile.dll を使用して手動で登録しようとすると、機能します。
dll - シェル拡張から DLL をロードする方法は?
小さなシェル エクステンションを作成しました。スタブは機能しますが、SQLite データベースから情報を読み取る必要があります。
System.Data.SQLite.dll
: マネージドのみのコア アセンブリSQLite.Interop.dll
: ネイティブ相互運用アセンブリ
過去に、これら 2 つの DLL を.exe
ファイルと同じフォルダーに配置することで、デスクトップ アプリケーションを正常に構築できました。
しかし、シェル拡張の場合、ファイルのようなものは存在しない.exe
ので、これらの DLL をどこに配置すればよいのでしょうか?