从外部文件而不是 .csproj 文件读取版本前缀

reading the version prefix from an external file instead of the .csproj file

此时,我的 .csproj 文件包含 XPath /Project/PropertyGroup/VersionPrefix,它决定了 nuget 包的版本。 但是,我更愿意从共享文件中读取此版本前缀,因为它对于 3 或 4 个项目很常见,每个项目都有自己的 .csproj 文件。

换句话说,而不是

<VersionPrefix>2.0.0</VersionPrefix>

我们更喜欢

@@include ../../version.xml

并且此 version.xml 包含上面将被替换的行。

我相信有多种方法可以实现这一点,但无法准确理解具体方法。帮助将不胜感激。

您可以在所有项目上方的文件夹层次结构中创建一个名为 Directory.Build.props 的文件(例如,在解决方案文件旁边)并将共享属性放在那里:

<Project>
  <PropertyGroup>
    <VersionPrefix>2.0.0</VersionPrefix>
  </PropertyGroup>
</Project>

MSBuild 将自动查找并导入此文件。 (您可能需要 re-open 您的编辑/visual studio)。有关详细信息,请参阅 MSBuild 的 Customize your build 文档。