2017-10-11 65 views
0

.csproj文件中包含屬性:訪問`.csproj`從C#.NET中的核心

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

我怎樣才能訪問,從我的項目的代碼?

+0

如果代碼沒有項目編譯,何必呢訪問的.csproj:

爲T以外的值,看屬性上https://docs.microsoft.com/en-us/dotnet/api/system.reflection?view=netcore-2.0

例上市? – qxg

+0

這是一個構建文件的內容。您不會將您的項目文件部署到用戶的計算機上,它只存在於您的計算機上。你也不會將它包含在Nuget包中。如果你想這樣做,但肯定你不應該,那麼就使用XmlDocument。 –

回答

3

要訪問您的項目中使用的版本,更全面的性能: GetCustomAttribute<T>()

使用AssemblyInformationalVersionAttribute爲T型檢索版本屬性。 typeof(Startup).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion

+0

這將適用於版本,但不適用於PackageId,但我不知道OP的意圖。但是對於所有與版本相關的屬性,這是最好的/正確的方法。 –

+0

@MartinUllrich你是對的,我編輯了我的答案。 :) – koelkastfilosoof

+0

是的'PackageId'永遠不會用於除創建Nupkgs之外的任何內容,並且永遠不會是dll/any屬性的一部分。 –