【问题标题】:I would like to update the version number of the project each time I push f5 for building每次按 f5 进行构建时,我都想更新项目的版本号
【发布时间】:2011-11-08 09:11:08
【问题描述】:

我们目前拥有的:

  • SVN 作为源代码库
  • 用于构建和设置版本号的 MSBuild 脚本
    • 此版本号是构建文件中的属性和来自 SVN 的最新版本的组合
  • 用于运行构建脚本的巡航控制

我想做的事:

每次构建时,我们的构建脚本都会更新版本号。每次我们在 Visual Studio 中按 F5 进行构建时,我都想自动执行此操作。所以用正确的版本号更新 GlobalAssemblyInfo.cs,从 SVN 中的修订号

【问题讨论】:

  • 你能不能只在 VS 中将 msbuild 脚本作为构建后事件运行?

标签: visual-studio-2010 svn msbuild automation cruisecontrol.net


【解决方案1】:

更好的方法是使用 SVN 挂钩。版本号只会在提交时更改,因此您可以编写一个挂钩来更新该文件作为提交的一部分。

或者看看这个:http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx

【讨论】:

  • 这看起来是一个非常好的方法。那么没有人会忘记:)
【解决方案2】:

我刚刚阅读了 about this yesterday 关于 TFS 2010 构建的内容。我知道它并不完全适用于您的情况或架构,但他提出了一些关于如何进行程序集版本控制的好点。

更具体地说,作者引用了this post。同样,它特定于 MSBuild,但有一些要点通常适用于程序集版本控制

编辑:

第一个链接讨论了各种方法的优缺点,包括使用日期作为版本号的一部分(不是特别有用),但倾向于将 TFS 内部版本号作为程序集版本的一部分。他提到了他首选的版本控制方案,该方案使他能够快速轻松地识别与构建相关的内容(修补程序等)。此链接主要用于为您提供有关程序集版本控制的一些替代视图。

第二个链接由第一个链接引用,其中包含一些代码示例,说明他如何使用 MSBuild 帮助对其程序集进行版本控制。这也可以为如何去做提供一些有用的想法。也许将其中一些与构建后事件结合起来以实现您的目标。

【讨论】:

  • 请总结一下帖子的实际。如果它们被删除,您的答案将变得比无用更糟糕。
  • @ChrisF - 已编辑。希望它现在比没用的要好一些。
【解决方案3】:

我通过修改项目文件并使用 MSBUILD.Community.Tasks 找到了一种使用 F5 的方法

<Target Name="BeforeBuild">
<MSBuild.Community.Tasks.Subversion.SvnInfo Username="$(SvnUserName)" Password="$(SvnPassword)" RepositoryPath="$(SvnPath)">
  <Output TaskParameter="Revision" PropertyName="SvnRevision" />
</MSBuild.Community.Tasks.Subversion.SvnInfo>

<CreateProperty Value="$(Major).$(Minor).$(Build).$(SvnRevision)">
  <Output TaskParameter="Value" PropertyName="FullVersionNumber" />
</CreateProperty>

<MSBuild.Community.Tasks.AssemblyInfo 
  OutputFile="$(ProjectFolder)\GlobalAssemblyInfo.cs" 
  CodeLanguage="CS" 
  AssemblyVersion="$(FullVersionNumber)" 
  AssemblyFileVersion="$(FullVersionNumber)" />
<Message Text="Test"/>
</Target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2020-10-02
    • 2016-08-22
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多