c# - 如何使用 MSBuild 脚本确定构建来源?

标签 c# msbuild build-automation msbuildextensionpack

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

我想根据这个修改我们版本号的一部分,这样开发人员就可以判断构建是在开发机器、生产构建箱等上进行的。等

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

示例:

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

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

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

最佳答案

  1. 根据 MachineName 创建一个属性。
  2. 使用该属性在之前更新 AssemblyInfo.cs 文件 build 。

我在下面有“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)" />

关于c# - 如何使用 MSBuild 脚本确定构建来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19320958/

相关文章:

php - 平 : sending the full log by email?

c# - 以编程方式构建和发布 .net Web App

batch-file - 批处理文件 - 错误代码

c++ - 错误 MSB6006 : "cmd.exe" exited with code 3 in Teamcity

c# - 提高 EF 查询性能 - 检查预取列表中是否存在行 <string>

c# - Paypal TLS1.2/Http1.1 升级 - PayPal 支付标准的 HTML 表单基础

git - 我如何从 git post-commit Hook 运行 cmd

linux - 自动化构建安装过程

c# - 在 .NET 中打开巨大的 TIF 并将部分复制到新图像

c# - 使用转换后的发布配置部署本地 Web 应用程序