問題タブ [assemblies]
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 - まだ Visual Studio にない Microsoft アセンブリはどこにありますか?
誰かが一般的に質問に答えることができると思いましたが、誰かが具体的に知りたい場合は、次を使用しようとしています:
System.Web.Security.SingleSignOn を使用します。System.Web.Security.SingleSignOn.Authorization を使用します。
私は自分の頭脳をグーグルで検索しましたが、これが私が見つけた最も近い答えです:
「これについてはオフラインで話し合いましたが、ADFS アセンブリは GAC されているようですが、ファイル システムにインストールされていないか、VS.NET に登録されていないため、.NET タブに表示されません。MS は強化する必要があると思います。このシナリオのインストーラです。それまでの間、おそらく自分でこれを行う必要があります。」
いったい何、自分で何をするの?
c# - アセンブリの特定のバージョンを読み込む方法
いくつかのテストを完了するには、32 ビット バージョンの Windows を実行していても、64 ビット バージョンのアセンブリを読み込む必要があります。これは可能ですか?
.net - 既存の .NET アセンブリの変更
サードパーティのツールに頼らずに、既存の .NET アセンブリを変更する方法はありますか? PostSharpがこれを可能にしていることは知っていますが、PostSharp の開発者System.Reflection
が既存のアセンブリを変更可能にするために基本的に名前空間全体の機能を書き直さなければならなかったのは非常に無駄だと思います。
System.Reflection.Emit
新しい動的アセンブリの作成のみを許可します。ただし、ここで使用されるすべてのビルダー クラスは、基本的なリフレクション クラスから継承されます (たとえばTypeBuilder
、から継承されSystem.Type
ます)。残念ながら、既存の動的に読み込まれた型を型ビルダーに強制する方法はないようです。少なくとも、公式にサポートされている方法はありません。
では、サポートされていない場合はどうでしょうか。既存のアセンブリまたは型をそのようなビルダー クラスにロードできるバックドアを知っている人はいますか?
注意してください、私は現在のアセンブリを変更する方法を探しているのではなく(これは不合理な要求かもしれません)、ディスクからロードされた既存のアセンブリを変更するだけです。そのようなことはないと思いますが、とにかくお聞きしたいです。
最悪の場合、ildasm.exe
コードを逆アセンブルしてからilasm.exe
再アセンブルする必要がありますが、IL データを操作するためのツールチェーン (読み: IL リーダー) が .NET に含まれていません (またはありますか?)。
/編集:
特定のユースケースはありません。既存のアセンブリにパッチを適用することは非常に一般的なタスクであるため、汎用ソリューションに興味があります。たとえば、難読化ツール、プロファイラー、または AOP ライブラリを考えてみましょう (そうです、後者は別の方法で実装できます)。すでに述べたように、既存のインフラストラクチャの大部分をSystem.Reflection
.
@ウェッジ:
あなたが正しい。ただし、ここでは特定の使用例はありません。これを反映するように元の質問を変更しました。Lutz Roeder の Reflector が (VB または C#) ソース コードをリエンジニアリングするのを防ぐために、質問者がどのように命令pop
を挿入し、すべてのメソッドの最後に挿入できるかを知りたがっていたという別の質問によって、私の興味がかき立てられました。ret
現在、このシナリオは、前述の PostSharp や、 Cecilライブラリを使用する Reflector 用のReflexilプラグインなど、多くのツールで実現できます。
全体として、私は .NET フレームワークに満足していません。
@ジョエル:
はい、私はこの制限を認識しています。重要なことなので、とにかく指摘してくれてありがとう。
@マルキシダード:
これが唯一の実行可能なアプローチのようです。ただし、これは、ビルダー クラスを使用して完全なアセンブリを再作成する必要があることを意味しますよね? つまり、アセンブリ全体を手動で調べる必要があります。
うーん、調べてみます。
c# - Assembly.CreateInstance を介して読み込まれる C# プラグインに引数を渡すにはどうすればよいですか?
私が今持っているもの(プラグインを正常にロードする)はこれです:
これは、引数のないコンストラクターを持つクラスに対してのみ機能します。コンストラクターに引数を渡すにはどうすればよいですか?
c# - Assembly.Load と Environment.CurrentDirectory
ここにこれに関連するスレッドがあることに気付きました: アセンブリとその依存関係の読み込み
しかし、私は何かを変更していますが、これは正確には当てはまりません。
このようにする本当の理由はありますか?単に使用する方が理にかなっているでしょうか:
どんな洞察も大歓迎です。
c# - ディレクティブを使用して不要なC#を削除する必要があるのはなぜですか?
たとえば、私はめったに必要ありません:
ただし、デフォルトでは常に存在します。コードに不要なusingディレクティブが含まれている場合、アプリケーションはより多くのメモリを使用すると思います。しかし、他に知っておくべきことはありますか?
また、同じusingディレクティブが1つのファイルだけで使用されている場合と、ほとんど/すべてのファイルで使用されている場合でも、違いはありますか?
編集:この質問は、オブジェクトがスコープ外になったときにそのIDisposable.Disposeメソッドが呼び出されるようにすることでリソースを管理できるように設計された、 usingステートメントと呼ばれる無関係の概念に関するものではないことに注意してください。C#での「使用」の使用を参照してください。
.net - .Netのプライベートアセンブリとは何ですか?
クラスレベル以下のアクセス修飾子を理解していますが、アセンブリ全体がプライベートになるのはなぜですか?デフォルトでは、アセンブリは公開されていると思いますか?
.net - .NET で Assembly.Load トレースを有効にする方法はありますか?
.NET で Assembly.Load トレースを有効にする方法はありますか? デバッガーの下で実行しているときに、「Loaded 'assembly X'」のようなメッセージが表示されることはわかっていますが、デバッガーの外部で実行中のアプリケーションのアセンブリ ロードのログを取得したいと考えています。
私は自分のアプリケーションでさまざまなことを追跡していますが、基本的に、どのアクションが特定のアセンブリの読み込みをトリガーしたかを知りたいと思っています。
tfs - AssemblyInfo.csファイルの自動更新とチェックインにより、部分的に失敗することがあります
TFS 2008のビルドは、プロジェクト内のすべてのAssemblyInfo.csファイルをチェックアウトし、AssemblyInfoTaskで更新してから、ビルドが成功したかどうかに応じて、チェックアウトまたはチェックインを元に戻すように設定されています。残念ながら、2つのビルドが互いに接近してキューに入れられると、AssemblyInfo.csファイルが以前のチェックインよりも前のバージョンでチェックアウトされているように見えるため、ビルドが部分的に完了します。
これを回避するために、「Get」タスクを使用して、AssemblyInfo.csファイルを更新する前に強制的に最新バージョンにすることができると思いましたが、これは効果がないようです。何か案は?
.net - アセンブリのバージョン管理属性を使用する最良の方法は何ですか?
AssemblyVersionおよびAssemblyFileVersion属性は、.NET アセンブリのバージョン番号を処理する組み込みの方法です。フレームワークは、バージョン番号の最も重要でない部分 (Microsoft の用語ではビルドとリビジョン) を自動的に決定する機能を提供しますが、私はこの方法が非常に弱く、他にも多くの方法があることは間違いありません。
そこでお聞きしたいのですが、プロジェクトの実際のバージョンをより適切に反映するバージョン番号を得るために、どのような方法が決定されましたか? バージョンの一部を日付と時刻、またはプロジェクトの作業コピーのリポジトリ バージョンに設定するビルド前のスクリプトはありますか? フレームワークが提供する自動生成をそのまま使用しますか? または、他の何か?アセンブリ/ファイルのバージョン管理を管理する最良の方法は何ですか?