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

时间:2018-03-20 07:59:38

标签: linux msbuild csproj .net-core-2.0

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

换句话说,而不是

<VersionPrefix>2.0.0</VersionPrefix>

我们希望有像

这样的东西

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

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

我相信会有多种方法来实现这一目标,但无法确切地了解如何实现这一目标。帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

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

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

MSBuild将自动查找并导入此文件。 (您可能需要重新打开您的编辑/视觉工作室)。有关详细信息,请参阅MSBuild的Customize your build文档。