目录
背景
使用代码
兴趣点
在本技巧中,您将学习一种简单的方法来为.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目录进行版本控制,例如:
Zeeland BV
Zeeland BV
Zeeland BV
10.0.30000.0
10.0.30000.0
10.0.30000
我也将问题发布在dotnet/coreclr GitHub网站上,并获得了有关Common.props文件的有趣答案:
1.2.3
abc
然后在.csproj中,在元素打开器之后添加。
但是我认为我会坚持使用Directory.Build.props文件的第一个解决方案,因为这对我来说似乎是最简单的选择。
兴趣点其他有趣的工具:
- “一个自动执行.NET和VC ++项目版本控制的Visual Studio加载项和命令行实用工具”版本控制的内部版本-Visual Studio市场 [ ^ ]
- Gitea https://github.com/go-gitea/gitea
- Cake构建工具https://www.codeproject.com/Articles/1231188/Cake-Build-Tool