2017-07-14 9 views
2

VS2017 Professionalで作成した私のソリューションには、マスターデータベースを参照するSQL Serverデータベースプロジェクトが含まれています。 Hosted VS2017エージェントを使用してVisual Studio Team Servicesでソリューションを構築すると、以下のエラーが発生します。ホストされたVS2017エージェントの構築master.dacpacは存在しません

2017-07-14T12:44:17.8387743Z ## [エラー] C:\ Program Files SQL352027:ファイル "C:\ Microsoft \ Visual スタジオ¥2017¥エンタープライズ¥MSBuild¥Microsoft¥VisualStudio¥v15.0¥SSDT¥Microsoft.Data.Tools.Schema.SqlTask​​s.targets(559,5): ファイル" C: \ Program Files(x86)\ Microsoft Visual スタジオ\ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ 110 \ SqlSchemas \ master.dacpac " が存在しません。 Microsoft Visual Studioスタジオ\ 2017 \エンタープライズ\ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ SSDT \ Microsoft.Data.Tools.Schema.SqlTask​​s。 SQL Server 2000:SqlSchemas¥0135¥ビルド・エラーSQL72027:ファイル "C:¥Program Files(x86)¥Microsoft Visual スタジオ¥2017¥Professional¥Common7¥IDE¥Extensions¥Microsoft¥SQLDB¥Extensions¥SqlSchemas¥ master.dacpac " が存在しません。 [D:\ 3 \ S \メイン\ ItAsset.Database \ ItAsset.Database.sqlproj \]

は、どのように私はこの問題を解決し、VSTSに構築するために私の解決策を得ることができますか?

+0

私の解決策でこの問題を解決しますか? –

答えて

2

Hosted VS2017エージェントには存在しない絶対パスを使用します。 (プロフェッショナルエンタープライズ)。プロジェクトファイルをチェックすることができます(ヌードパッド経由で開いているsqlprojファイル)

master.dacpacをプロジェクトフォルダにコピーしてプロジェクトに追加し、このファイルへの参照を追加することができます。

+0

代わりに@ LarrySmithの答えを使用してください。プロジェクトにdacpacを含める必要はありません。 – Justin

2

これは、回避策は、手動で$(DacPacRootPath)変数との完全なパスを交換するプロジェクトファイル(複数可)を編集することであるVisual Studio用SSDTのバグ2017

です。 https://connect.microsoft.com/SQLServer/Feedback/Details/3141348

そして、ここに: https://connect.microsoft.com/SQLServer/Feedback/Details/3133716

注Connectサイトを持っているか、あなたはバグは、Microsoft Connectサイト上で二回報告されている2015年

のVisual Studio用のSSDTを使用することができます廃止されました。ここではユーザーボイスにこの問題のために投票してください:

https://feedback.azure.com/forums/908035-sql-server/suggestions/32897047-visual-studio-2017-ssdt-adds-hardcoded-master-dacp#comments

+1

ファイルをコピーするのではなく、これが壊れていて修正が必要だと私は同意します。 –

+0

追加情報ありがとう@LarrySmith –

+0

いつでも私の友人。これは本当に謎だったし、私たちが2017年にアップグレードするとすぐに私のチームでは非常にイライラしていた。告発が行われ、犠牲者が狩られた。 ;)あなたの投稿は文字通り正しい道に私たちを置きました。 –

6

私はマルチ開発者の状況で、このことにより、ビットを得ました。これは、コードをチェックインした開発者が、あなたやVisual Studioの別のインスタンスにVisual StudioをインストールしていたVS2017 SSDTプロジェクトで発生するようです。たとえば、開発者AがデフォルトでC:\にインストールされていて、開発者BがVS2017をE:\ドライブにインストールした場合、Masterへの参照を作成したユーザーは動作し、もう一方はdacpacファイルが見つかりません。

をご覧ください。sqlprojファイルは、おそらくマスターデータベースへのこの参照を見つけることができます:

<ArtifactReference Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac"> 
    <HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac</HintPath> 

注:<HintPath>は正しいですが、Include="は、ハードコードされたパスです。ヒントのパスは通常どおりに続かないようです。問題を解決するには、HintPath要素の内容をInclude属性にコピーしてみてください。 HintPathはそのままにしておきます。

<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac"> 
+0

ありがとう!これは私の問題を解決しました! – Nightking

関連する問題