sha*_*oth 13 .net c# versioning build nightly-build
我们有一个每晚构建过程,自动版本化所有C++项目.这是它的工作原理.有一个通用的头文件VersionNumber.h,具有特定#define的版本号.nighly build检查此文件,增加后面的整数#define并将其检入.所有Visual C++项目#include都标题到其资源文件中并使用该定义来指定版本(版本很像1.0.3.ThatNumber).
到现在为止还挺好.现在,我想对在同一日常构建中构建的C#类库具有相同的功能.目前他们都有
[assembly: AssemblyVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)
在AssemblyInfo.cs文件和库中最终得到 1.0.HorribleNumber.AnotherHorribleNumber得到版本,这两个数字与C++项目使用的数字无关.
如何以最小的努力在我的C#项目中使用相同的清除自动版本编号?
Tim*_*oyd 12
首先,您可以指定完整版本,如下所示:
[assembly: AssemblyVersion("1.0.9.10")]
Run Code Online (Sandbox Code Playgroud)
其次,使这更简单(并回应您的C++方法)的一种常见方法是使一个Version.cs文件(名称不重要)位于具有其中版本属性的公共位置.然后,您可以将此文件添加为所有cs项目的链接,记住要从AssemblyInfo.cs文件中删除版本属性.这样,您只需要更新一个文件(在运行构建之前).您还可以在Version.cs文件中放置其他常用程序集属性,例如:NeutralResourcesLanguage或CLSCompliant.
如果不使用单个"Version.cs"方法,则可以递归地处理源代码目录结构,并单独更新AssemblyInfo文件(在运行构建之前).
它可能与您无关,但版本号(在AssemblyVersion中)的最大范围为16位.我已经看到这成为这些数字使用日期的问题.如果你希望拥有更大的自由度,那么AssemblyFileVersion没有这些限制,但纯粹仅用于.Net中的信息目的,而不是程序集的标识的一部分.将AssemblyVersion和AssemblyFileVersion设置为相同的值是常见的,因为某些工具会显示这些值的组合.
有关AssemblyVersion与AssemblyFileVersion的更多信息,请参阅以下内容:
AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?
| 归档时间: |
|
| 查看次数: |
13290 次 |
| 最近记录: |