2017-10-11 167 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属性的一部分。 –