gpt4 book ai didi

powershell - 'AdditionalDeploymentContributors' 不是 'Publish' 操作的有效参数

转载 作者:行者123 更新时间:2023-12-02 01:23:04 26 4
gpt4 key购买 nike

我有一组 View ,其中只有一个需要部署,每次部署一个不同的 View 。 Filtering DacPac deployments应该这样做。我知道开箱即用的选项 have improved ,但这不能满足我的需求。

数据库通过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

编辑:感谢您的回复,只是为了使问题完整,添加我评论中的内容。

我正在使用 SQL Server 2012,我认为它是版本 110。在我的文件夹结构中:Microsoft SQL Server/110/DAC/bin 我找不到您引用的 .dll。它在 Microsoft SQL Server/120/DAC/bin 中,我没有安装 never 版本,所以 Microsoft SQL Server/130/DAC/bin 包含的内容很少,没有 DAC 文件夹。

  1. 我应该在哪里添加这些 .dll?

当我尝试更改配置文件时,它产生了错误请检查此文件是否在另一个程序中打开。。我试过停止 SQL Server windows 服务,认为他们可能正在使用它。 Process Explorer 找不到正在使用的文件,Openfiles 找不到任何打开的文件。即使我在 Notepad++ 中打开了文件,所以我不清楚那会做什么。

  1. 我必须做什么才能编辑配置文件?

注意:我使用的是 Visual Studio 2013 和 SQL Server 2012。使用适用于 Visual Studio 2013 的 SSDT 工具。

最佳答案

我怀疑您遇到 Contributor 初始化错误是因为您将 Ed 的贡献者与最新版本的 SqlPackage.exe 一起使用。部署贡献者是针对早期版本的 DACFx API 而构建的,我们已经更新了一些版本号。您可以通过向 SqlPackage.exe.config 文件添加绑定(bind)重定向来解决此问题。以下是 Jack Yang 在 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.

关于powershell - 'AdditionalDeploymentContributors' 不是 'Publish' 操作的有效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com