我正在努力将现有的Azure V12数据库引入SSDT项目,以便我们可以开始使用源代码管理和CI管道。
我正在努力解决的问题是在某些代码中引用了“sys.fn_get_audit_file”,它给出了“未解析的引用”错误。我不希望在构建项目时忽略任何错误,所以一直试图正确解决这个问题。向master添加数据库引用并不能解决问题,而且SSDT附带的master.dacpac文件似乎没有该sys函数的定义(在model.xml中)。我检查了VS文件夹中可用的所有版本的master.dacpac文件,甚至尝试了VS 2019预览,看看是否有更新版本的master.dacpac。
在网上挖掘我意识到其他人在master.dacpac中缺少对象的类似问题,建议的解决方案是编辑model.xml,重新打包并更正校验和。我宁愿不去那条路,所以我尝试使用SqlPackage从Azure中的主数据库中提取DACPAC,但提取的模型几乎没有对象定义。
有什么建议?
有人应该在微软的团队中提出它 - 我知道他们在这里监控所以也许有人可以帮忙吗?
与此同时,它看起来像天蓝色支持fn_get_audit_file
,无论如何根据文档。
我已经创建了几个dacpac,欢迎您使用,有旧的天蓝色版本:
https://the.agilesql.club/assets/dacpacs/azure/master.dacpac
和v12版本:
https://the.agilesql.club/assets/dacpacs/azurev12/master.dacpac
我所做的是从我的机器中取出现有的azure master dacpac(vs 2017)并添加非天蓝版本的sys.fn_get_audit_sql
元素。
为此,我使用7zip解压缩model.xml,然后编辑xml文件并将model.xml文件复制回dacpac。
这会导致模型具有错误的校验和,所以我有一个小应用程序,用正确的校验和重写origin.xml,如果有人想要它,我会把这个应用程序放在github上,但是这是一个版本:
https://github.com/GoEddie/Dacpac-References/tree/master/src/GOEddie.Dacpac.References
当我拥有master.dacpac时,我将它们复制回VS 2017:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Commnuity \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12
(取决于版本)
这让我在azure / azurev12项目中使用fn_get_audit_sql:
希望能帮助到你!
和