2017-11-01 4 views
1

VSTSを使用してデータベースにデプロイしようとしていますが、問題はdacpacファイルをピックアップして展開する必要があるAzure SQLサーバーに接続しますが、失敗します。そのステップでは 、私はVSTSのMicrosoftが提供する "Azure SQLの実行:DacpacTask"を使用しています。 それを行うために提出されたが、「DACPACはファイル」と呼ばれ、ドキュメントは、このようにそれを使用するように言われている。VSTSビルドでピックアップされないdacpacファイル(クラウドでホストされているエージェント)

$(agent.releaseDirectory)\AdventureWorksLT.dacpac

が、それは私に以下のエラーました:そう

No files were found to deploy with search pattern d:\a\1\s\$(agent.releaseDirectory)\AdventureWorksLT.dacpac

を私は不正行為を行なったし、それに以下の値を置く:

d:\a\1\s\AdventureWorksLT.dacpac

それは作業を行いますが、私はenvironmを使用する必要があるとして明らかに、それは永遠に動作しません。次のような変数があります。

$(agent.releaseDirectory)\AdventureWorksLT.dacpac

何か提案がありますか?

+0

私はかなりあなたが相対ディレクトリを使用できると確信しているので、本当に必要はありません – 4c74356b41

答えて

3

私はこの同じ問題を抱えています。私は詳細な文書を見つけることができませんでしたが、実験から、これは私が見つけたものです。

私はDACPACがソリューションの作成タスクの一部として作成されていると仮定しています。ビルドが完了し、DACPACが作成されると、$(System.DefaultWorkingDirectory)ディレクトリのサブフォルダに存在します。

明らかに、Azure SQL Database Deploymentタスクは$(System.DefaultWorkingDirectory)フォルダにアクセスできません。したがって、ファイルはアクセス可能などこかにコピーする必要があります。だから私は何をしたのですか:

  1. Visual Studioビルドタスクは、DACPACを含むソリューションをビルドします。作成されたDACPACは、$(System.DefaultWorkingDirectory)サブフォルダに格納されます。
  2. 次の手順として[ファイルのコピー]タスクを追加します。ソースフォルダプロパティは "$(System.DefaultWorkingDirectory)"にする必要があります。 Contentsプロパティは "**/YourDacPacFilename.dacpac"である必要があります。ターゲットフォルダは$(build.artifactstagingdirectory)にする必要があります。 「** /」はVSTSに、すべてのサブフォルダで一致するファイルを検索するように指示します。
  3. Azure SQLデータベース展開タスクを追加して、実際のDACPACを展開します。 DACPACファイルは$(build.artifactstagingディレクトリ)にあります。
+0

あなたは天才です! 私は動作しましたが、最終的に宛先を次のように変更しています。 $(build.artifactstagingdirectory)\ {myproject name} \ bin \ Release \ {my file name} .dacpac –

+0

うまくいきました。さて、ビルドにコマンドラインタスクを追加し、ビルドパイプラインがファイルを配置していた場所を見つけるためにdirコマンドを使用することは非常に便利です。ログの出力を見れば、何が起きているのかを知ることができます。 –

関連する問題