以编程方式访问项目文件中的元数据

Programmatically access metadata from project file

在VS2019 / .NET Core 3.0中,项目元数据保存在项目文件中:

<PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
    <Authors>.....</Authors>
    <Description>.....</Description>
    <NeutralLanguage>.....</NeutralLanguage>
    <Copyright>.....</Copyright>
    <StartupObject>.....</StartupObject>
    <ApplicationIcon>.....</ApplicationIcon>
    <Company>.....</Company>
    <PackageTags>.....</PackageTags>
    <PackageReleaseNotes>.....</PackageReleaseNotes>
    <PackageProjectUrl>.....</PackageProjectUrl>
    <PackageIconUrl>.....</PackageIconUrl>
    <RepositoryUrl>.....</RepositoryUrl>
    <RepositoryType>.....</RepositoryType>
</PropertyGroup>

其中一些值可以通过版本或自定义属性访问。但是一些新值,如 AuthorsPackageTags、... 还不是 AssemblyInfo 处理的一部分。

我的问题是:如何从我的应用程序中访问这些值?

如果您发布一个,这些属性与目标 NuGet 包相关。它们不会嵌入到您的应用程序中,因此您无法访问它们。

有关详细信息,请阅读 A​​dditions to the csproj format for .NET Core 文档,尤其是 NuGet metadata properties 主题。

The following is the list of properties that are used as inputs to the packing process when using the dotnet pack command or the Pack MSBuild target that is part of the SDK.

  • Authors
  • PackageTags
  • ...