使用TFS 2013来版本化Windows Store App Builds

时间:2014-12-15 17:10:10

标签: c# windows tfs windows-runtime windows-store-apps

我们正在使用TFS 2013来管理Windows应用商店应用的源代码。不幸的是,看起来我们必须手动更改版本号。这很乏味且容易忘记。如果我们使用错误的构建两次,我们必须采取额外的步骤来部署。有没有办法在构建服务器构建时设置版本号?

2 个答案:

答案 0 :(得分:0)

您需要在构建服务器上执行PowerShell预构建以更新构建号。作为TFS社区构建工具的一部分,有一个示例脚本。

https://curah.microsoft.com/8047/run-scripts-in-your-team-foundation-build-process

查找ApplyVersionToAssemblies.ps1。您必须自定义以更新所需的任何最安全的文件...

答案 1 :(得分:0)

我找到了解决方案。这将修改appmanifest中的版本号。我不确定消息来源,如果有人发布消息来源,我会将此添加到此评论中。

这是我添加到项目源代码管理中的powershell脚本,并将其设置为运行预构建。这对我来说就像每个版本的魅力。这正是我想要的。

# get the build number, we assume the format is Myproject.Main.CI_1.0.0.18290
# where the version is set using the TFSVersion custom build activity (see other posts)
$buildnum = $env:TF_BUILD_BUILDNUMBER.Split('_')[1]
# get the manifest file paths
$files = Get-ChildItem -Path $env:TF_BUILD_BUILDDIRECTORY -Filter "Package.appxmanifest" -Recurse
foreach ($filepath in $files)
{
    Write-Host "Updating the Store App Package '$filepath' to version ' $buildnum '"
    # update the identity value
    $XMLfile=NEW-OBJECT XML
    $XMLfile.Load($filepath.Fullname)
    $XMLFile.Package.Identity.Version=$buildnum
    # set the file as read write
    Set-ItemProperty $filepath.Fullname -name IsReadOnly -value $false
    $XMLFile.save($filepath.Fullname)
}