我有一个SSDT数据库项目,它引用了其他几个数据库。
我现在正在使用Dac API(DacPackage)和Microsoft.SqlServer.Dac.DacServices.Deploy(),因为我已经设置了
,它正确地选择了引用的dacpacsoptions.IncludeCompositeObjects = true;
我想要做的是能够在内存中查询包以从dacpac获取引用数据库的列表,然后验证我的运行时配置没有遗漏任何内容。
我在DacPackage中找不到允许我这样做的属性或方法。
有办法做到这一点吗?
答案 0 :(得分:1)
开箱即用,没有。
我已针对它提出了一个连接项,并希望它将在未来版本中使用。
我有一个关于如何做的github示例:
https://github.com/GoEddie/Dacpac-References
基本上你有一个.dacpac是一个zip文件 - 在这里你有一个带有一组CustomData元素的model.xml,其中每一个都是对另一个dacpac的引用。
示例将这些CustomData元素作为可以查询的类(HeaderParser :: GetCustomData)返回,您还可以使用HeaderParser :: DeleteCustomData和HeaderParser :: AddCustomData来添加一个。
如果您不喜欢该示例,那么您可以查询并更新xml本身以帮助阅读zip文件,使用“System.IO.Packaging.Package”或查看示例中的DacHackXml。