2017-02-01 1 views
0

Il y a deux projets eg. Project1 et Project2. Maintenant Dans Project2, nous devons créer une définition de version, dans laquelle nous devons copier la sortie de génération de la définition de construction de project1.

Le problème est que nous ne pouvions pas donner d'artefact comme celui de la définition de construction Project1 dans la version Project2.

Si nous pouvions accéder à la variable $ (Build.BuildNumber) de project1 à partir de Project2, prolem sera résolu.

Veuillez nous suggérer.

Merci.

+0

Vous pouvez créer les deux projets à partir de la même définition de génération. Alors les deux partageraient les mêmes propriétés "environnementales". –

Répondre

0

Vous pouvez accéder au numéro de build via l'API REST, étapes simples:

  1. Créer un nouveau fichier script Powershell dans votre projet avec ce code:

code:

Param(
    [string]$teamProject, 
    [string]$collectionURL, 
    [string]$buildId, 
    [string]$userName, 
    [string]$password 
    ) 
$basicAuth = ("{0}:{1}" -f $userName,$password) 
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth) 
$basicAuth = [System.Convert]::ToBase64String($basicAuth) 
$headers = @{Authorization=("Basic {0}" -f $basicAuth)} 
$url="$($collectionURL)$($teamProject)/_apis/build/builds/$($buildId)?api-version=2.0" 
Write-Output $url 
Function GetBuildNumber{ 
    $result = Invoke-RestMethod -Uri $url -headers $headers -Method Get 
    Write-Output $result.buildNumber 
    Write-Host "##vso[task.setvariable variable=anotherBuildNumber;]$($result.buildNumber)" 
} 
GetBuildNumber 
  1. Contrôle dans le contrôle source
  2. et publier des objets
  3. Modifier votre définition de libération
  4. Ajouter ces variables

enter image description here

  1. Ajouter une tâche PowerShell à la définition de votre libération.

    Nom du fichier du script: [votre fichier de script PowerShell dans un artefact, par ex. $ (System.DefaultWorkingDirectory) /PowerShellVnext/TFS2015U2Solution/PowerShellModuleProject1/RestTest.ps1];

    Arguments: -teamProject $ (TeamProject) -collectionURL $ (System.TeamFoundationCollectionUri) -buildId $ (BUILDID) -username $ (nom d'utilisateur) -passwor $ (mot de passe)

Après que le numéro de build La valeur est stockée dans une autre variableBuildNumber.

0

Il n'existe pas de fonctionnalité permettant de lier d'autres artefacts de génération de projet d'équipe sur TFS, mais vous pouvez ajouter une tâche Windows Machine File Copy dans la définition de version de Project2 pour copier les artefacts de Project1. Ce question pour votre référence.

+0

Merci Andy-MSFT ... Le dossier que nous devons copier est créé dans le cadre de la sortie de construction, ce nom contenant le numéro de construction. Puisque le numéro de build d'un autre projet d'équipe n'a pas pu être accédé, nous ne pouvons pas non plus utiliser la copie de Windows Machine File. – hanu