1

TFS DeployerサービスSqlPackageを介してデータベースを展開するために使用する PowerShell スクリプトを作成しようとしています。スクリプトをコマンド ラインから直接実行すると機能しますが、TFS Deployer がスクリプトを実行しようとすると失敗します。どちらの場合も同じユーザー アカウントが使用されます。

サービスは、コンソール アプリケーションとしてテスト モード ( TfsDeployer -d) で実行されていますが、Windows サービスとして実行されている場合にも失敗します。

これはログ ファイルです (キャプチャされた出力SqlPackageと PowerShell スクリプトでキャッチされた例外):

11/18/2012 17:51:49 | Publishing to database 'databaseName' on server 'machineName'.
11/18/2012 17:51:56 | An error occurred while the batch was being executed.
11/18/2012 17:51:56 | System.Management.Automation.RemoteException: *** Could not deploy package.

これらは、私が収集できた唯一の情報です。エラー コード (HRESULT) は、キャッチされた例外に存在しませんでした。

PowerShell スクリプトは次のようになります。

try{
    $cmd = Join-Path (Get-Item "Env:ProgramFiles(x86)").Value "Microsoft SQL Server\110\DAC\bin\SqlPackage.exe"
    $src = Join-Path $source "db.dacpac"
    $cfg = Join-Path $source "db.publish.xml"

    &$cmd /Action:Publish /SourceFile:$src /Profile:$cfg 2>&1 | ForEach-Object -Process {
        Write-Log $_
    }
}
catch [Exception] {
    Write-Log $_.Exception.ToString()
    if($_.Exception.HResult) {
        Write-Log "Code: $($_.Exception.HResult.ToString('X'))"
    }
}
4

0 に答える 0