4

ビルド サーバーの 1 つが最新の「Microsoft SQL Server Update for database tooling」(バージョン 12.0.60629.0) に更新されたばかりで、現在 (C:\Program Files (x86) にある) SqlPackage.exe のバージョンと互換性がありません。 \Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe)。SQL Server データベース プロジェクト (SQL Server 2014 をターゲット) はエラーなしでビルドされますが、SqlPackage.exe を使用して .dacpac をターゲット サーバーに展開しようとすると、次のエラーが発生します。

The Element or Annotation class PersistedResolvableAnnotation does 
    not contain the Property class Length.

案の定、成功したビルドの model.xml ファイル (.dacpac 内) をこの最新のものと比較すると、いくつかの Annotation 要素の下に追加の "Length" および "Offset" プロパティが表示されます。

<Annotation Type="PersistedResolvableAnnotation" Name="[$(MyLinkedServer)].[$(MyDatabase)]|[dbo].[SomeTableName]">
    <Property Name="TargetTypeStorage" Value="ISqlSynonymTarget" />
    <Property Name="Length" Value="63" />
    <Property Name="Offset" Value="37" />
</Annotation>

これらのビルド サーバーには、Visual Studio 2012 および 2013 のみがあり、 2015 はありません。この最新の SSDT 更新プログラムが SqlPackage との互換性を壊していることは明らかです (また、この同じ問題についてオンラインで他の兆候があります)。それ?

以前の SSDT バージョンにダウングレードするつもりはありませんが、必要に応じてダウングレードします。最新のデータ層アプリケーション フレームワークをインストールし、代わりにその SqlPackage.exe を使用する必要がありますか? または、Visual Studio 2015 をインストールしますか?

4

2 に答える 2

5

これは、最近の SSDT 更新で導入された問題です。これは内部で修正されており、SSDT の次の (16.4) リリースに含まれる予定です。SSDT リリースは、最初にSSDT ダウンロード ページからリリースされ、 SSDT チーム ブログで通知されます。その後、2 ~ 3 週間以内に Visual Studio の拡張機能と更新プログラムが展開されます (これは別の VS 全体のスケジュールで行われるため)。

  • : VS2013 リリースについては、ダウンロード サイトの「以前のリリース」ページにアクセスしてください。SSDT は引き続き VS2013 用に更新されますが、ダウンロード ページは、ユーザーが最新バージョンの Visual Studio を入手できるように最適化されています。

開示:私はSSDTチームで働いています

于 2016-09-07T01:33:07.367 に答える
2

ビルド サーバーに最新の DacFx をインストールするか、msi での sqlpackage.exe の使用から DacFx usnig の nuget バージョンに変更します。

https://blogs.msdn.microsoft.com/ssdt/2016/08/22/releasing-ssdt-with-visual-studio-15-preview-4-and-introducing-ssdt-msbuild-nuget-package/

これにより dacpac が下位互換性を持たない場合は、接続項目を作成してバグかどうかを確認します。そうでない場合は、この種の通知があり、接続項目がそのローリングを取得する必要があります。

エド

于 2016-09-06T18:23:07.260 に答える