問題タブ [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.
visual-studio-2008 - regasm および tlb (COM 相互運用のための .NET ライブラリの登録)
1 つのパブリック クラスといくつかのプライベート クラスを含む .NET アセンブリがあります。
次のコマンドを使用して、VBA から呼び出すことができるように、COM 相互運用に登録しようとしています。
regasm /tlb foo.dll /codebase
その後、Visual Studio の「オブジェクト ブラウザ」でファイルを開く.tlb
と、ライブラリが型を公開していないことがわかります。
何かご意見は?
ここには具体的な情報があまりないことを認識しているので、診断に役立つものを教えていただければ、提供しようと思います.
security - UNC 共有にあるフレームワーク 4.0 アセンブリに regasm を使用する
regasm ユーティリティを使用して、.Net 4.0 でコンパイルされたバイナリを登録しようとしています。この ComInterOp アセンブリはネットワーク共有に展開する必要があり、共有から登録しようとすると、「ファイル、アセンブリ、または依存関係の 1 つを読み込めませんでした」というエラーで失敗します。(バイナリがローカル ドライブにある場合、登録は機能します)。コード アクセス セキュリティの問題である可能性があります。フレームワーク 4.0 アセンブリ用に設定する方法はありますか? 4.0 フレームワークに同梱されている Caspol.exe を試しましたが、役に立ちませんでした。
.net - COM ライブラリのプロパティ/メソッドの説明
COMClass を作成した場合、結果の tlb ファイルを参照すると、XML Summary タグの値が VB6/VBA のオブジェクト ブラウザーに表示されないことに気付きました。これらの値を表示する方法はありますか?
.net - 従来のASPページから.NETアセンブリを使用する
いくつかのaspページがあり、.netdllへのアクセスにオブジェクト参照の問題がある古い.net2005Webサイトがあります。メンテナンスタスクは私に引き継がれ、元の開発者はどこにも見つかりません:(私はすでに.Netで始めたので、このdll地獄のような問題の処理を実際にマスターしていません。
下の矢印は、「(0x80131500)オブジェクト参照がオブジェクトのインスタンスに設定されていない」ことを奨励しているところです。
私はすでにこれらの手順に従いました:
- regasm / tbl / codebase mycomdll.dll
- gacutil / i mycomdll.dll
- mycomdll.dllをSystem32ディレクトリにコピーします
- コンソールから、issresetを実行します
- dllがフレームワーク2.0で作成されている場合は、system32ディレクトリに「dllhost.exe.config」ファイルを作成し、次のように配置します。
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<requiredRuntime version="v2.0.50727"/>
</startup>
</configuration>
6.-issresetコマンドを使用してIISを再起動します
そしてまたこれらのもの:
- プロジェクトのプロパティの下a。\ application \assemblyinformationの下でi。「アセンブリをCom-Visibleにする」にチェックを入れます。b。ビルドiの下。「ComInteropに登録」をチェックします</li>
- 署名しないでください。
- IUSRがファイルに対する完全な許可を持っていることを確認してください。
- iisresetを介してIISを再起動し、キャッシュをフラッシュします。
それでも、アプリケーションの実行は成功しません。何をチェックまたは何をすべきかについてのアイデアは他にありますか?ありがとう!
エミール
.net - Windows Update 後に .Net アセンブリを Program Files に移動する必要がある
いくつかの .Net アセンブリ (私が作成したもの) を使用する従来の Windows クライアント アプリケーションがあり、そのうちの 1 つは COM ラッパーを使用しています。クライアント アプリケーションは、ルート ドライブのサブフォルダー (c:\somefolder...) にあります。最近、Windows の更新後、アプリケーションが .Net アセンブリを正しく読み込めませんでした。アップデート前は問題ありませんでした。
アセンブリをプログラム ファイルの下のサブフォルダーに移動し、COM アセンブリを再登録 (regasm) してから、ルート ドライブの下の既存の場所からファイルを削除することで問題を解決しました。これは現在機能していますが、長期的な修正ではありません。
さまざまな Windows の更新後にこの問題が発生したため、特定の更新に固定することはできません。この問題は主に XP マシンで発生しますが、Vista および 7 でも発生しています。ありがとう。
.net - 古いバージョンの .net アセンブリの登録解除
登録済みの古いバージョンが多数あるアセンブリがあります。
私が持っている唯一のdllは最後のものです。
アセンブリのすべてのバージョンを登録解除するにはどうすればよいですか?
ありがとう。
編集:実行時にこれを実行したいので、 regasm -u ... または他のスクリプトのようなソリューションが必要です。
wix - Wix - DLL ファイルの Heat への呼び出しを自動化して、レガズム情報を受け取る方法
インストール中に「regasm file.dll /codebase」の実行をシミュレートするために、レジストリに追加する file.dll に対して Heat.exe を実行します。次に、生成されたコンテンツを installer.wxs ファイルに追加すると、すべてが機能します。
プロセスを自動化して、.dll ファイルが変更されるたびに手動で Heat.exe を実行する必要がないようにしたいと考えています。代わりに、Wix プロジェクトをビルドするたびに呼び出しが実行されます。
どうすればそれができますか?コード例は非常に高く評価されます。
ありがとう、マキシム
c# - WiX を使用して GAC に COM dll を登録する
皆さん、こんにちは。
プログラムの WiX インストール スクリプトに取り組んでいます。C# dll を GAC にインストールして登録する必要があります。そのため、ファイルを でマークしAssembly=".net"
て、WiX GAC が代わりにそれを処理するようにします。次に、遅延カスタム アクションを実行するように設定します。これは、GAC からアセンブリをロードしてから登録するようInstallFinalize
に呼び出します。Assembly.Load
RegistrationServices.RegisterAssembly
1 つの問題を除いて、完璧である必要があります。どうやら dll は実際にはコミット フェーズまで GAC に書き込まれないため、カスタム アクションを実行するとAssembly.Load
、ファイルが見つからないためにスローされます。それはどこにある?コミットフェーズの前にアクセスできますか? または、これを完全に行うためのより良い方法はありますか? そんな些細なことに思えますが…
の使用を提案しないでくださいheat.exe
。本当に避けたいです。私のプログラムには、ComRegisterFunction
可能であればユーザーのコンピューターで実行したい があります。
c# - .NET-4 専用システムの GAC で .NET-2.0 を対象とした COM DLL を使用する
改めまして、
前回の質問に続き、C# で記述した Windows エクスプローラー拡張機能の互換性を最大限に高めようとしています。特に、.NET 4 がインストールされ、.NET 3.5 以下がインストールされていない環境で動作することを確認することに関心があります。問題はないと思うかもしれませんが、どうやらそれほど単純ではないようです...
2 つの問題があります。まず、非 .NET-4 ターゲット アセンブリは、指定されたファイルがない限り、CLR 4 で読み込まれません。それらで使用しようとしても、このファイルがないと失敗します。しかし、私の DLL は GAC に入ります。そこにファイルを取得するにはどうすればよいですか?他の人も同じことを尋ね、「まあ、代わりに静的な設定クラスを作成するだけです」という結論に達しました。明らかに私にはそれができません....config
<supportedRuntime version="v4.0" />
ngen
.config
.config
2 番目の問題: DLL を に登録regasm.exe
し、レジストリを開いて書き込み内容を確認するとRuntimeVersion = v2.0.50727
、CLSID エントリの下に表示されます。これにより、DLL が読み込まれなくなります。RuntimeVersion
値を手動で変更した後でのみv4.0.30319
、DLL がロードされます。
では、ここでインストーラーに何をさせなければならないのでしょうか? 最初のものについては、私にはわかりません。2 つ目は、レジストリの RuntimeVersion を、インストールされている .NET バージョンに手動で設定するインストーラーが必要だと思いますか? それはあまりにも奇妙に思えます...
.net - インストールできますか。ネットワーク共有フォルダにある NET COM ライブラリ?
ネットワーク フォルダにある reg asm で登録された COM サーバーが正しく機能していません。オブジェクトを作成しようとすると、「自動化エラー」というエラーが発生します。dll がローカル ディスクにある場合は、すべて正常に動作します。
追加情報:
COM ライブラリは Net 3.5 で書かれています。
VB マクロによる COM へのアクセス
ライブラリには厳密な名前があります