Я создал одно определение сборки в TFS, которое настроено на запуск сценариев powershell после сборки. Сценарии PowerShell, как ожидается, создадут папку «Пакет» внутри папки «Папка», а в папке «Пакет» я хочу скопировать папку «Database.Upgrade» из исходного кода и опубликованную версию веб-сайта из самого места отправки.Проблема с копированием папки _PublishedWebsites из места отправки во время сценариев Post-build TFS
Я вижу, что папка «Database.Upgrade» успешно копируется, однако папка «_PublishedWebsite» не копируется вообще.
В чем может быть причина? Не создается ли папка «_PublishedWebsite» до создания сценариев после сборки?
# Pick drop folder
$DropFolder = "$Env:TF_BUILD_DROPLOCATION"
# Set Package folder (i.e., \\drop-location\Build name\Build number\Package)
$PackageFolder = "$DropFolder\Package"
$PackageFolder_Website = "$PackageFolder\MyApplication.Web"
$PackageFolder_Database = "$PackageFolder\MyApplication.Database"
if (!(Test-Path -path $PackageFolder))
{
New-Item $PackageFolder -itemtype directory -force
}
if (!(Test-Path -path $PackageFolder_Website))
{
New-Item $PackageFolder_Website -itemtype directory -force
}
if (!(Test-Path -path $PackageFolder_Database))
{
New-Item $PackageFolder_Database -itemtype directory -force
}
# Pick web deployment (published) folder (i.e., \\drop-location\Build name\Build number\_PublishedWebsites)
$PublishFolder = "$DropFolder\_PublishedWebsites\MyApplication"
# Copy published folder to package folder
Copy-Item $PublishFolder\* "$PackageFolder_Website\" -Recurse -Force
# Pick sql database scripts (i.e., App.Database.Upgrade folder) from TFS sources directory
$DatabaseScriptsLocation = "$Env:TF_BUILD_SOURCESDIRECTORY\MyApplication 2016\Trunk\App.Database.Upgrade"
# Copy sql database scripts to database drop folder
Copy-Item $DatabaseScriptsLocation\* "$PackageFolder_Database\" -Recurse -Force
Здесь первый Copy-Item не реально копировать все, что, как предполагается, чтобы скопировать содержимое из _PublishedWebsite \ MyApplication пакетов; папку, в то время как второй Copy-Item, который работает обновление баз данных успешно копирует сценарии.
Мой билд сервер использует TFS 2013.
Попробуйте использовать TF_BUILD_BINARIESDIRECTORY в качестве корневого местоположения, чтобы получить свое веб-приложение. Вы удаляете местоположение - это целевая доля UNC для вашего сокращения. Похоже, что ваш $ PublishFolder указывает на папку сбрасывания, а папка сбрасывания не создается до конца рабочего процесса. Построчный процесс по умолчанию переопределяет $ (OutDir) в MSBuild, чтобы указать на каталог двоичных файлов –
Правильно, теперь я могу скопировать скомпилированную версию сайта с использованием предложенной переменной. Вставьте это как ответ и отметьте его. спасибо – Nirman
Рад, что вы разблокированы –