I am using the sqlpackage utility and MSBuild to generate source and target .dacpac files from our database and database projects. I am aware that I can generate publish scripts and even do deployment reports, but these reports are only at a high-level. What I want to do is be able to provide a report that shows me exactly what is different between the two dacpacs. For example, the generated publish script and DeployReport.xml show me that a particular stored procedure has changed and will be overwritten, however it does not show me which lines of the stored procedure have changed, and as it is a very long stored procedure, figuring this out manually takes quite a bit of effort.
So far I've tried extracting the contained model.xml from the .dacpac files and using a Diff tool to compare the model.xml from my source.dacpac to the target.dacpac, but if one is generated from the live database and the other built from a DB project then they are unfortunately much too different to be able to show me a useful visual.
In Visual Studio, I can of course open the "Schema Compare" tool and compare my dacpacs this way, but that is much too manual and I am looking for a more automated solution. A way of triggering this "Schema Compare" from the command line would be nice, at the very least.
What is the best way to compare two dacpac files and show me precisely what the differences are between them at a detailed level? i.e. that these 5 stored procs changed, and show me visually what lines changed in each of the five procs? I am okay with duct-taping together some kind of solution but I cannot purchase any 3rd party tools, I am stuck with what MS provides and my own limited capabilities.