AssemblyInfo.cs应该放在版本控制中吗?

Lia*_*son 20 svn cruisecontrol.net version-control assemblyinfo

我有一个使用CruiseControl的自动构建系统.我正在使用SvnRevisionLabeller来获取要使用的版本字符串.使用此字符串,我可以使用nant来更新AssemblyInfo.cs,因此在构建时它具有正确的构建字符串.我也可以使用此CC标签来标记subversion存储库.

所以一切都是对齐的
--CCNet Build标签
- 可执行(装配信息)
- 版本控制(subverson标签)

现在我遇到问题的是,如果我想尝试从存储库重建旧图像.由于AssemblyInfo.cs不受版本控制,而是生成文件,因此当我现在尝试构建时,版本信息将与使用CruiseControl构建此版本的存储库时的版本信息不同.我希望能够生成完全相同的图像,无论它是在CC构建期间构建还是在以后从Subversion签出时构建.

我知道它通常不推荐,但是我应该在每次构建之后签入assemblyInfo.cs文件,这样当我从svn签出后随后构建时,将使用正确的版本信息吗?

谢谢,利亚姆

sko*_*ima 7

或者根本不对AssemblyInfo.cs进行版本化,或者将它们的"开发者版本"放入存储库并让CruiseControl.Net在构建之后恢复它们(我会在以后执行以便在开发人员工作站上进行的构建很容易从从CruiseControl.Net下载的"官方"版本.

至于稍后再生相同的构建标签 - 您必须通过手动调用MSBuild/NAnt来进行重建,只需传递给它CCNetLabel设置为适当的值,您将获得与从CruiseControl调用的构建生成的相同的程序集版本.Net(MSBuild:/p:CCNetLabel=1.4.2.333,NAnt :) -D:CCNetLabel=1.4.2.333.


Ryu*_*Ryu 7

我使用CommonAssemblyInfo.cs文件,我在每个项目中添加一个链接.

我在这个文件中唯一的属性是AssemblyFileVersion,CC.Net/Msbuild每次构建都会更新版本.

确保包含CommonAssemblyInfo.cs的任何项目在AssemblyInfo.cs中没有重复的属性.

如果您查看CC.Net源代码,您将看到他们是如何构建它们的.


Rob*_*zak 2

我总是将其签入。事实上,我相信这是 Team System Source Control 的默认行为。