0

ビューのセットは1つしか配備する必要はなく、配備ごとに1つしかありません。 Filtering DacPac deploymentsはそれを行う必要があります。私は箱のオプションhave improvedのオプションを知っていますが、それは私の必要性のためにはできません。'AdditionalDeploymentContributors'は 'Publish'アクションの有効な引数ではありません

データベースはSqlPackageによって公開されており、これらのパラメータはパブリッシュアクションに対して有効なものとして明示的にリストされています。しかし、私はこれらを使用する場合、それは(赤で)エラーを生成します。

*** 'AdditionalDeploymentContributors' is not a valid argument for the 'Publish' action. 
*** 'AdditionalDeploymentContributorArguments' is not a valid argument for the 'Publish' action. 

私はDeploy.ps1ファイルに次のコマンドを使用します。

& $sqlpackageFileName /a:Publish /sf:$DacPacFileName /tcs:$ConnectionString /v:RefToOtherDatabase="${OtherDatabaseName}" /pr:$OptionsFromPublishFile /p:AdditionalDeploymentContributors="AgileSqlClub.DeploymentFilterContributor" /p:AdditionalDeploymentContributorArguments=$NordicsDeployFilter 

それは私がすでに取得していますということかもしれ私の出版プロフィールのオプション。しかし、それらを私のPropertyGroupに入れた場合、公開するとエラー:Contributor initialization errorが生成されます。詳細を得ることはできません。お返事のため おかげで、ちょうど私のコメントに何の追加、完全な質問を保つために:

  1. は、なぜそれがAdditionalDeploymentContributor

編集をロードすることはできません。

私はバージョン110と思うSQL Server 2012を使用しています。私のフォルダ構造では、Microsoft SQL Server/110/DAC/binあなたが参照している.dllが見つかりません。それはMicrosoft SQL Server/120/DAC/binにあり、決してバージョンがインストールされていないので、Microsoft SQL Server/130/DAC/binにDACフォルダはほとんど含まれていません。

  1. これらの.dllをどこに追加する必要がありますか?

設定ファイルを変更しようとすると、エラーPlease check if this file is opened in another program.が生成されます。 SQL ServerのWindowsサービスを停止しようとしましたが、使用している可能性があります。 Process Explorerは使用中のファイルを見つけることができず、Openfilesは開いているファイルを見つけることができません。私はNotepad ++でファイルを開いていますが、それがどういうのかは不明です。

  1. 設定ファイルを編集するにはどうすればよいですか?

注:あなたがエドの貢献を使用しているので、私は、Visual Studio 2013

答えて

1

私はあなたがその貢献者の初期化エラーを取得している疑いがあるためSSDTツールをVisual Studioの2013とSQL Server 2012を使用していますSqlPackage.exeの最新バージョン。デプロイメントコントリビュータは、DACFx APIの以前のバージョンを対象に構築されており、いくつかのバージョン番号を更新しました。これを回避するには、SqlPackage.exe.configファイルにバインドリダイレクトを追加します。ここで私はこれを助けるべき最新DacFx(nuget)を使用しますすぐにビルドを持っているMSDN SSDTのフォーラムでジャック・ヤンからの指示(https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ee3f886e-6b5e-4b95-b912-e06354534bf9/sqlpackageexe-version-130-wont-load-additionaldeploymentcontributors?forum=ssdt

To run against version 130, please modify the SqlPackage.exe.config to add the binding redirect on the Microsoft.SqlServer.Dac.dll and Microsoft.SqlServer.Dac.Extensions.dll. This file can be found right next to SqlPackage.exe.

Example shown in below,

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="10.0.0.0" newVersion="13.0.0.0" /> <bindingRedirect oldVersion="12.0.0.0-13.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.TransactSql.ScriptDom" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0-13.0.0.0" newVersion="13.100.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Dac" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Dac.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>

We started shipping AppLocal version of Microsoft.SqlServer.TransactSql.ScriptDom with DacFx in July; therefore, depending on which version of DacFx you have, if you didn’t see the Microsoft.SqlServer.TransactSql.ScriptDom.dll in the same folder with DacFx, then you don’t need the binding redirect for it. It should be in the GAC already.

+0

です! –

+0

ありがとう、エド。また、今後のバージョンでは、これらのバインドリダイレクトをデフォルトで設定します。 –

+0

ありがとうございますが、いくつかの問題があります。 1.私はバージョン110であると思うSQL Server 2012を使用しています。私のフォルダ構造では: "Microsoft SQL Server/110/DAC/bin"あなたが参照している.dllが見つかりません。それは私が持っているファイルパスの120バージョンにあり、130にはDACフォルダがほとんど含まれていません。 2.この設定ファイルを変更するには?私が試してみると、 "このファイルが別のプログラムで開かれているか確認してください。"私はSQL ServerのWindowsサービスを停止しようとしました。 – MrFox

関連する問題