問題タブ [gac]
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.
.net-3.5 - GAC の使用時に本番環境にログインするためのスタック トレース情報を取得する方法
本番環境で例外などをロギングするためのスタックトレース(ファイル名と行番号)情報を取得したいと考えています。DLL は GAC にインストールされます。これを行う方法はありますか?
この記事では、PDB ファイルを GAC に配置する方法について説明しています。
これらは、デバッグ シンボル (.pdb ファイル) を GAC にコピーする必要があると表示されるため、簡単に見つけることができます。それ自体では、それは機能しません。
この記事は VS を使用したデバッグに言及していることは知っていますが、スタックトレースのログ記録にも当てはまると思いました。
オプションであると言った最適化コードのチェックを外すことを除いて、この質問への回答の指示に従いました。
dll と pdb を GAC にコピーしましたが、まだスタック トレース情報を取得できません。スタック トレースのログ ファイルには次のように記録されます。
Nログを使用しています。
私のNLogレイアウトは次のとおりです。
${stacktrace:format=Raw} が関連部分です。
.net - 中央の非 GAC の場所に DLL を保存する
私たちは、独特でつらい状況に直面しています。従来、GAC とポリシー ファイルを使用して、.NET アプリケーションの DLL バージョンを制御してきました。ただし、非常に特殊な状況であり、一部のアプリケーションがポリシー ファイルを尊重しないため、これに関して大きな問題が発生しています。具体的には、ポリシー ファイルを持つ .NET 1.1 dll を参照する .NET 2.0 アプリケーションです。
Windows アプリケーションと多数の Web アプリケーションで動的に実行される (リフレクションを介して読み込まれる) 項目が混在しています。GAC のバージョン管理について心配するよりも、「集中型 DLL ストア」に移行することを検討しています。しかし、アプリケーションに「ここで DLL を探す」ように指示する方法が見つからないようです。
いくつかのアセンブリ情報ノード ( http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx ) を見ると、途中までは取得できますが、ルックアップする必要があるすべての DLL をそれぞれ定義する必要があります。これは、共有 DLL のバージョンを更新する際に web.config を定期的に更新する必要がある約 200 の異なるアプリケーションがあるため、不可能です。
DLL 参照を移動する方法を知っている人はいますか? アプリケーションで新しいバージョンの共有 DLL を使用する必要がある場合があるため、CopyLocal はオプションではありません。少なくとも現時点では、GAC も実際にはオプションではありません。
.net - Web サイトのインストール中にアセンブリを GAC に登録するにはどうすればよいですか?
サードパーティのコントロールに依存するプロジェクトに取り組んでいます。インストール後に Web サイトを開くと、これらのコントロールに関するエラー メッセージが表示されます。
web.config ファイルには、各 dll のアセンブリ タグがあります。これらのタグを削除すると、ウェブサイトは正常に読み込まれますが、これらのコントロールを含むページを開くと、そのエラーが発生しました
インストール中にそのdllをGACに登録する必要がありますか?
c# - .NET: AssemblyVersion に関して、バイナリ互換性を定義するものは何ですか?
AssemblyVersionAttribute の変更を必要とする厳密な名前のアセンブリへの変更は何ですか? 明らかに、クライアントがコードを変更しなければならないような方法でパブリック API を変更するには、AssemblyVersion を増やす必要があります。しかし、クライアントのコード変更を必要としないパブリック API への変更はどうでしょうか? 例えば:
- パブリック クラスまたはインターフェイスの追加?
- パブリック クラスまたはインターフェイスへのパブリック メンバーの追加? (編集: drscroogemcduck は、メンバーをインターフェイスに追加すると、すべての実装者がホースになることを以下で正しく指摘しています。ばかげています。)
- クラスメンバーの可視性の向上?
これに関する決定的なドキュメントが MSDN のどこかにあるはずです (または、MS を知っている場合は、MSSE の個人的なブログ)。しかし、私は単にそれを見つけることができません。助けてください!
c# - アセンブリに署名した後、WCF メソッドが見つかりません
次のようなソリューションに 3 つのプロジェクトがあります。
- WCF サービス: いくつかのメソッドをホストします
- クラス ライブラリ: Soap クライアントのインスタンスを返すことにより、WCF サービスへのゲートウェイとして機能します。
- WPF アプリケーション: 参照されたクラス ライブラリを介してサービス メソッドを使用します。
すべてが完璧に機能していました...アプリケーションは、ライブラリを介して SOAP クライアントのインスタンスにアクセスし、それに応じてメソッドを消費していました。
これで、アセンブリに署名してもすべてがコンパイルされ、新しいメソッドを追加してライブラリのサービス参照を更新すると、新しいメソッドがアプリケーションに表示されます...しかし、アプリケーションを実行してメソッドを使用しようとすると、 aMissingMethodException
がスローされます:
メソッドが見つかりません: 'MusicData.Entities.User DBAccess_Gateway.DBInteraction_Service.DBInteractionGatewayClient.User_Login(System.String, System.String)'.
これは失敗した行です:
署名されているアセンブリ(現在は署名されているためgacにありますか?)に関係があると思います...しかし、メソッドが見つからないのはなぜですか?署名されたアセンブリが正しく更新されていませんか?