gpt4 book ai didi

sql-server - 如何在 dacpac 中打包部署贡献者?

转载 作者:行者123 更新时间:2023-12-03 22:31:24 26 4
gpt4 key购买 nike

我找不到有关如何在 dacpac 中打包部署贡献者的任何引用资料。

  • 我们正在使用 DacServices.Deploy Method将我们的数据库作为 dacpacs 部署到 SQL Server。
  • 该方法的参数具有属性 DacDeployOptions.AdditionalDeploymentContributors其中有描述“指定应该运行的其他部署贡献者 - 除了 dacpac [强调添加] 中指定的那些。”

  • 所以我的问题是如何在 dacpac 中指定这些部署贡献者?

    我尝试将部署贡献者类放在 Visual Studio 的 SSDT 项目中,但这会干扰加载到 SQL Server 中的 CLR 程序集(即,它被加载到 SQL Server 中,如果它的依赖项也未设置为加载,则错误是抛出)。

    请指教。谢谢。

    最佳答案

    要放入您想要加载特定贡献者的 dacpac,您需要手动编辑 .sqlproj 文件并添加以下内容:

    <PropertyGroup>
    <DeploymentContributors>$(DeploymentContributors);AgileSqlClub.DeploymentPlanLogger</DeploymentContributors>
    </PropertyGroup>


    <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />

    更改 "AgileSqlClub.DeploymentPlanLogger"无论您的贡献者将其名称导出为(即 [ExportDeploymentPlanModifier("AgileSqlClub.DeploymentPlanLogger", "0.1.0.0")] )

    添加此 xml 将导致 dacpac 中的“Origin.xml”具有以下内容:
    <RequiredContributors>
    <DeploymentContributor Name="AgileSqlClub.DeploymentPlanLogger" Version="0.1.0.0" />
    </RequiredContributors>

    您可能是唯一使用过此功能的人之一,所以谁知道它是否有效?让大家知道!

    您还需要将贡献者部署到您正在构建 dacpac 的机器以及您从中部署或生成部署脚本的机器。在您将从以下位置部署的机器上:

    dacfx 寻找部署贡献者的路径被硬编码为:
    Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Microsoft SQL Server\120\DAC\bin\Extensions")
    所以在我的系统上它是“c:\program files(x86)\Microsoft SQL Server\120\DAC\bin\Extensions”。

    在您编译 dacpac 时将使用的机器上,您需要在链接中的 Visual Studio 路径中使用它:

    http://agilesqlclub.codeplex.com/wikipage?title=Deploying&referringTitle=Documentation

    请参阅“如果您在 SSDT 中发布”部分:

    (在我的 vs 2015 系统上,它是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions)

    另一件事是,当您将贡献者复制到扩展目录时,您可以将它们放在另一个文件夹中,这样您就可以保留您的扩展和任何依赖项,这些依赖项与任何其他贡献者分开,这些贡献者将拥有自己的一组依赖项(并且 dll hell 死了)与.net 哈哈)

    出于兴趣,您的贡献者做什么?

    如果是OSS请考虑分享:

    https://github.com/DacFxDeploymentContributors/Contributors

    埃德

    关于sql-server - 如何在 dacpac 中打包部署贡献者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34500500/

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