从外部文件而不是 .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 文档。
此时,我的 .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 文档。