Я пытаюсь создать шаг предварительной сборки с помощью powershell в одном из наших командных проектов, чтобы увеличить номер сборки для всех сборок/приложений в этом VS-решении. Это для TFS2015-update 2.Доступ к сборке TeamProjectCollection с этапа сборки с помощью PowerShell
Я нашел код примера здесь и там онлайн и собрал вместе то, что, как я думаю, будет работать. Я могу запустить скрипт powershell вручную на сервере TFS (аутентифицированный на сервере в качестве учетной записи Windows), и он отлично работает, но пока он не будет функционировать правильно в процессе сборки.
Вот пример кода, в котором я продолжаю получать свою ошибку. Она имеет отношение к аутентификации/подключение к серверу TFS:
$CollectionUrl=New-Object System.Uri("$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI")
$BuildUrl="$env:BUILD_BUILDURI"
# get the team project collection
$TeamProjectCollection=[Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($CollectionUrl)
# get the build server
$BuildServer=$TeamProjectCollection.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
# get the build detail
$BuildDetail=$BuildServer.GetBuild($BuildUrl)
# get the build definition
$BuildDefinition=$BuildDetail.BuildDefinition
Там ошибки первым я получаю:
Exception calling "GetService" with "1" argument(s): "TF30063: You are not authorized to access http://servername/TPCName
Я попытался с помощью как выше вызова, чтобы получить TPC, и строитель за это и не работает.
$TeamProjectCollection=New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($CollectionUrl)
Так что я начал пытаться построить объект учетных данных, основываясь на моих учетные данные для входа на сервер и посмотреть, смогу ли я подключиться к TPC таким образом. Тем не менее не работает (на сервере или в процессе сборки), но другая ошибка:
$netCred = New-Object System.Net.NetworkCredential($username,$password)
$basicCred = New-Object Microsoft.TeamFoundation.Client.BasicAuthCredential($netCred)
$tfsCred = New-Object Microsoft.TeamFoundation.Client.TfsClientCredentials($basicCred)
# get the team project collection
$TeamProjectCollection=New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($CollectionUrl, $tfsCred)
Выдает исключение:
Exception calling "GetService" with "1" argument(s): "TF400324: Team Foundation services are not available from the server.
Я также пробовал мой лучший на изменение разрешения TFS за счет окон что служба TFS работает, чтобы убедиться, что проблем там нет. Я довольно уверен, что добавил его ко всем ролям/группам, в которых была моя личность, но все же сборка не была аутентифицирована.
Я в затруднении на этом этапе. Может ли кто-нибудь помочь мне выяснить, как правильно подключиться к серверу TFS, используя определенные учетные данные, или помочь мне настроить, какие разрешения включают учетную запись службы, личность, варианты конфигурации и т. Д .; необходимо получить доступ к командеProjectCollection.
Какой построить систему вы используете? vNext или XAML? И согласно вашему описанию, вы хотите увеличить номер сборки, но сценарий powershell получает определение сборки. Какую функцию вы бы хотели достичь? –