2017-10-11 13 views
0

.csprojファイルが含まれています。私は私のプロジェクトのコードからということにアクセスするにはどうすればよいアクセス `

... 
<PackageId>MyProject</PackageId> 
<Version>1.0.0</Version> 
... 

? Versionプロパティを取得するために、タイプTなど GetCustomAttribute<T>()

使用AssemblyInformationalVersionAttribute:プロジェクトの使用のバージョンと、より一般的なプロパティにアクセスするには

+0

を? – qxg

+0

ビルドファイルの内容です。プロジェクトファイルをユーザのマシンにデプロイしないでください。マシン上にのみ存在します。それをNugetパッケージに含めることもできません。とにかくこれをやりたいのであれば、XmlDocumentを使用してください。 –

答えて

3

。 Tのための他の値について

https://docs.microsoft.com/en-us/dotnet/api/system.reflection?view=netcore-2.0

例に記載されている属性は以下を参照してくださいコードはプロジェクトなしでコンパイルできた場合は、なぜそれがアクセス.csprojべき typeof(Startup).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion

+0

これはバージョンでは動作しますが、PackageIdでは動作しませんが、OPの意図はわかりません。しかし、すべてのバージョン関連のプロパティでは、これが最良の/正しい方法です。 –

+0

@MartinUllrichあなたが正しいです、私は私の答えを編集しました。 :) – koelkastfilosoof

+0

うわー 'PackageId'はNupkgsの作成以外は何も使われることはなく、dll/any属性の一部ではありません。 –