【问题标题】:How to determine build origin with MSBuild Script?如何使用 MSBuild 脚本确定构建源?
【发布时间】:2013-10-11 14:41:51
【问题描述】:

我正在使用 MSBuild 和 MSBuild Extensions,我正在寻找一种方法来确定我的构建是在哪台机器上进行的。

我想根据此修改我们的部分版本号,以便开发人员可以判断是否在开发机器、生产构建盒等上进行了构建。人。

我认为使用 $(COMPUTERNAME) 会是一个好的开始,但我该如何进行比较?

示例:

3.2.0.416 -> 0 会告诉我们该构建是非官方的开发构建。

3.2.1.417 -> 1 会告诉我们这个版本是在我们的 QA CI 盒子上生成的。

谁能指出我正确的方向?我发现这篇文章是一个很好的起点 (Setting .NET Assembly Version with Jenkins and TFS)

【问题讨论】:

  • 为什么要在生产构建服务器之外的任何构建上设置版本号?为什么要在 2 个不同的盒子上构建?我得到了开发,但为什么你有一个“QA CI 服务器”和一个生产构建框?
  • 我只是用它作为一个复杂的例子。我不会对此进行评估,因为这不是问题的核心。但是直接回答您,我们有 CI,但我们的生产构建是手动完成的,因为需要一些我们目前没有自动化的额外步骤。然而,这在很大程度上是无关紧要的。

标签: c# msbuild build-automation msbuildextensionpack


【解决方案1】:
  1. 根据 MachineName 创建属性。
  2. 在之前使用该属性更新 AssemblyInfo.cs 文件 建设。

我在下面有“SubVersionRevision”,但只需使用替代语法来获取 TFS 版本(来自您在原始帖子中的链接)........

解决方案的关键是:设置和使用“MyCustomProperty001”

<Choose>


    <When Condition=" '$(Computername)'=='MyDevMachine' ">               
        <PropertyGroup>
            <MyCustomProperty001>0</MyCustomProperty001>
        </PropertyGroup>
    </When>

    <When Condition=" '$(Computername)'=='MyQaMachine' ">

        <PropertyGroup>
            <MyCustomProperty001>1</MyCustomProperty001>
        </PropertyGroup>

    </When>

    <Otherwise>

        <PropertyGroup>
            <MyCustomProperty001>9</MyCustomProperty001>

        </PropertyGroup>        

    </Otherwise>

</Choose>

<ItemGroup>
  <AssemblyInfoFiles Include="$(ProjectDir)\**\*AssemblyInfo.cs" />
</ItemGroup>

<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SVNToolPath)">
  <Output TaskParameter="Revision" PropertyName="MySubVersionRevision" />
</SvnVersion>


<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\(&quot;(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="AssemblyFileVersion(&quot;$1.$2.$(MyCustomProperty001).$(SubVersionRevision)" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多