.NET Core版本揭秘

目录

背景

使用代码

兴趣点


在本技巧中,您将学习一种简单的方法来为.NET Core 2.0项目提供通用的版本号和版本信息。

背景

我们有一个VS2017解决方案,其中包含数百个项目,大部分使用C#。
使用大多数免费工具可以自动完成构建过程:

  • Gitea GIT服务器
  • 运行TeamCity的持续集成构建器

使用VersionInfo.cs 技巧对C#项目进行版本控制,这意味着在Visual Studio解决方案资源管理器中的所有项目中都添加了一个中央版本文件作为链接添加。

我们使用定制的'AutoBuildVersion'工具来修改'VersionInfo.cs'文件(以及其他文件,例如Visual C .rc文件)的内容。
遗憾的是,我无法透露此工具的源代码,但是在本技巧的底部有一个很好的替代方法。

到目前为止,还算不错,直到最近才开始出现.NET Core.NET Standard项目,它们具有完全不同的存储版本信息的方式。.NET Core 2.0项目不再使用传统的AssemblyInfo.cs文件,而是将版本信息存储在.csproj文件中。

使用代码

经过数天的互联网搜寻之后,我终于偶然发现了这个技巧,即一个Directory.Build.props文件,该文件将对其下的所有.NET Core目录进行版本控制,例如:

<Project>
  <PropertyGroup>
    <Authors>Zeeland BV</Authors>
    <Company>Zeeland BV</Company>
    <Copyright>Zeeland BV</Copyright>
    <AssemblyVersion>10.0.30000.0</AssemblyVersion>
    <FileVersion>10.0.30000.0</FileVersion>
    <Version>10.0.30000</Version>
  </PropertyGroup>
</Project>

我也将问题发布在dotnet/coreclr GitHub网站上,并获得了有关Common.props文件的有趣答案:

<Project>
  <PropertyGroup>
    <VersionPrefix>1.2.3</VersionPrefix>
    <VersionSuffix>abc</VersionSuffix>
    <!-- etc.... -->
  </PropertyGroup>
</Project>

然后在.csproj,在<project>元素打开器之后添加<Import Project="..\..\Common.props" />

但是我认为我会坚持使用Directory.Build.props文件的第一个解决方案,因为这对我来说似乎是最简单的选择。

兴趣点

其他有趣的工具:

发布了69 篇原创文章 · 获赞 146 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/mzl87/article/details/105000507