問題タブ [assembly-attributes]
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 - リフレクション操作のために .NET アセンブリをロードし、その後アンロードする方法は?
クライアントのシステム内の環境と地域にまたがってデプロイされた .NET アプリケーションに関する情報を報告するツールを作成しています。
これらのアセンブリのアセンブリ属性の値を読みたいと思います。
これは を使用して実現できますがAssembly.ReflectionOnlyLoad
、この方法でもアセンブリがロードされたままになります。ここでの問題は、異なるパスから同じ名前を持つ 2 つのアセンブリを読み込むことができないため、異なるシステムにデプロイされた同じアプリケーションを当然比較することができないことです。
この時点で、ソリューションには一時的なAppDomain
s の使用が含まれると想定しています。
アセンブリを別のAppDomain
にロードし、そこから属性を読み取ってからアンロードする方法を誰かが詳しく説明できますかAppDomain
?
これは、URL アドレスにあるアセンブリだけでなく、ファイル システム上のアセンブリにも機能する必要があります。
visual-studio-2008 - Visual Studio 2008 のソリューションに基づいてプロジェクトのファイルを変更する
ある C# ソリューションでは、CommonAssemblyInfo.cs ファイルを共有する複数のプロジェクトがあり、特定のアセンブリ属性がすべてのプロジェクトで共有されます。CommonAssemblyInfo.cs ファイルが 1 つしかない限り、これは問題なく機能します。ただし、これらのプロジェクトを使用するソリューション (アプリケーション) がいくつかあり、各ソリューションには独自のバージョンの CommonAssemblyInfo.cs があります。
どのソリューションに含まれているかに応じて、プロジェクトで異なる CommonAssemblyInfo.cs ファイルを使用するにはどうすればよいですか?
最後に、アセンブリに、コンパイル元のソリューションに固有の属性を持たせたいと考えています。
すべてを同じファイル名で同じディレクトリに置くことはできないため、ファイルをソリューション ファイルにすることはできないと思います。常に最初にビルドされる特定のプロジェクトがないため、ビルド前イベントを使用できません。Visual Studio 環境でソリューションをビルドして実行できるようにしたいので、ビルド スクリプトは使用したくありません。
open-source - オープンソース(LGPL)プロジェクトの適切なアセンブリ属性値は何ですか?
オープンソースプロジェクトに取り組み始めたばかりです。プロジェクトはCodePlexでホストされており、暇なときに取り組んでいます。デフォルトのアセンブリ属性(以下にリスト)の適切な値は何ですか?
いくつかのプロジェクト(CodePlexとGoogle Code)でAssemblyCompany属性とAssemblyCopyright属性を見て驚いた。
xUnit.net
DotNetNuke:
Moq:
c# - 複数の Visual Studio プロジェクト間でプロパティを共有する方法は? (特に C# プロジェクト)
複数の Visual Studio プロジェクトのプロパティを手動で同期するのは面倒です。では、複数のプロジェクト間でプロパティを共有するにはどうすればよいでしょうか?
編集: 条件付きコンパイル シンボル、警告やエラーの処理などのプロパティを参照します。つまり、[プロジェクト] -> [プロパティ] タブで、またはプロジェクト XML ファイルを編集して構成できるものです。
同様の質問が以前にもありました。 1、2、および3を参照してください。ただし、私の理解では、答えは C++ 固有のものでした。C# プロジェクトの回答を探しています。それにもかかわらず、私以外の誰かが興味を持っている可能性があるため、分離を明確にしておく場合は、他の種類のプロジェクト (Visual Basic など) について回答することをためらわないでください。
このブログ投稿では、この問題の解決策を提案していますが、私はもっと単純なものを好みます。
また、少なくとも次の方法で問題の一部を解決できます (テストはしましたが、完全にはテストしていないことに注意してください)。
共有するアセンブリ属性を含む AssemblyInfo.cs ファイルを作成します。個々のプロジェクトでこの既存のアイテムにリンクします。元の (ローカル) AssemblyInfo.cs を使用し、そこにプロジェクト固有のアセンブリ属性を配置します。残念ながら、属性のオーバーライドは機能していないようで、GUI を介した属性の管理は現在制限されています。
c# - 動的に読み込まれたアセンブリを使用したアセンブリ属性
使用する前に静的メソッドを呼び出す必要があるサードパーティのライブラリを使用しています。ソフトウェアのライセンスを検証するためにシリアル キーを設定します。このライブラリを複数のプロジェクトで使用する必要があり、それらのプロジェクトがこのライセンスについて心配する必要がないようにしたいと考えています。理想的には、ライセンスを処理し、ライブラリを使用するプロジェクトによってそれを参照する共有アセンブリを作成し、それらのプロジェクトを、ライセンスが行われていることさえ知らないようにしたいと考えています。
これを達成することを考え始める 1 つの方法は、おそらくアセンブリ属性を使用することです。したがって、ライセンスを設定するコンストラクターを持つものを作成します。
それをラッパー プロジェクトに配置します。
そして、それを AssemblyInfo.cs に含めて呼び出します。
これで、ライブラリを使用する別のプロジェクトでこのプロジェクトを参照できます。
…が、図書館を利用しに行くと…
ライセンスが設定されていないことが報告されます。呼び出し元プロジェクトの AssemblyInfo.cs に属性を含めると、属性が呼び出されることがわかりました。これは、すべてのダウンストリーム プロジェクトにライセンスを再配布するよりは優れていますが、それを機能させるにはまだ余分な作業が必要です。
さらに、一部のプロジェクトは、elseware で動的にロードされます。例えば:
含まれているアセンブリを動的にロードするときに、ライセンス アセンブリ属性を呼び出すにはどうすればよいですか? これを容易にする別の .NET Framework 機能はありますか?