2013-01-11 83 views
1

我在解决方案中有两个项目。一个是版本3.0.0。*,另一个是2.0.0。*。我使用MSBuild脚本在Team City上构建我的解决方案。如何将版本字符串的内部版本号部分注入AssemblyVersion属性,并在开发时定义major.minor.patch。自动增加内部版本号

换句话说,我想手动控制major.minor.patch(并且这些专业在解决方案中的库中会有所不同),但会自动增加内部版本号。

回答

7

的TeamCity将自动为您管理的AssemblyVersion属性,但也有一些注意事项:

  1. 它将完全覆盖现有的值。
  2. 它将更新全部解决方案中的AssemblyVersions,所以如果您将同一个解决方案中的不同项目版本绑定在一起,这可能对您无效。

有了这些警告,这里是如何,我们已经设置它:

  • 在你构建配置的常规设置,改变Build number format%version%.{0}
  • 在你构建参数定义%version%作为您的major.minor.patch。
  • 在您的构建步骤中,滚动到屏幕底部并点击添加构建功能。选择AssemblyInfo patcher。确保Assembly version format填写为%build.number%

就是这样。 TeamCity会将所有程序集信息更新为由%version%和build counter定义的major.minor.patch.build,然后自动将这些更改还原为构建的最后一步。

0

团队城市配置内部版本号可以通过$(BUILD_NUMBER)在msbuild中找到。将您的teambuild保留为默认{0}。 我建议你使用它并通过你自己的自定义msbuild编辑两个程序集信息文件。您可以保留每个文件的标记版本,以便版本文件在版本属性中包含2.0.0。$(BUILD_NUMBER),然后使用扩展包解除密码来转换两者(或任何数量的文件)。 仍然认为你应该在两个项目上都有相同的版本,尽管...