【问题标题】:Is it possible to get referenced databases programatically from DacPackage?是否可以从 Dac 包以编程方式获取参考数据库?
【发布时间】:2015-01-06 15:16:00
【问题描述】:

我有一个 SSDT 数据库项目,它引用了其他几个数据库。

我现在将 Dac API (DacPackage) 与 Microsoft.SqlServer.Dac.DacServices.Deploy() 一起使用,因为我已经设置了正确提取引用的 dacpacs

options.IncludeCompositeObjects = true;

我想要做的是能够查询内存中的包以从 dacpac 中获取引用数据库的列表,然后验证我的运行时配置没有丢失任何内容。

我在 DacPackage 中找不到允许我解决此问题的属性或方法。

有没有办法做到这一点?

【问题讨论】:

    标签: sql-server-data-tools dac


    【解决方案1】:

    开箱即用,没有。

    我已经针对它提出了一个连接项,并希望它会出现在未来的版本中。

    我有一个关于如何做的 github 示例:

    https://github.com/GoEddie/Dacpac-References

    基本上,您有一个 .dacpac,它是一个 zip 文件 - 在其中您有 model.xml,其中包含一组 CustomData 元素,其中每个元素都是对另一个 dacpac 的引用。

    示例将这些 CustomData 元素作为您可以查询的类 (HeaderParser::GetCustomData) 返回,您也可以使用 HeaderParser::DeleteCustomData 和 HeaderParser::AddCustomData 添加一个。

    如果您不喜欢该示例,则可以查询和更新 xml 本身以帮助阅读 zip 文件,使用“System.IO.Packaging.Package”或查看示例中的 DacHackXml。

    【讨论】:

    • (虽然我刚刚注意到我还没有真正提交代码!我今晚回家后会更新repo!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2013-06-21
    • 2011-12-01
    • 2014-08-17
    • 2018-05-07
    • 2021-09-24
    相关资源
    最近更新 更多