SqlSchemaCompare target uses property names that are reserved
- Dominant language
- C#
- Stars
- 460
- Forks
- 29
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 7
Description
- SqlPackage or DacFx Version: Microsoft.Build.Sql 0.1.15-preview and SSDT targets from VS 17.9.6
- .NET Framework (Windows-only) or .NET Core: both
- Environment (local platform and source/target platforms): windows
**Steps to Reproduce:**
1. `msbuild /t:SqlSchemaCompare /p:Source=path\to\dacpac1 /p:Target=(path\to\dacpac2 or connectionstring) project.sqlproj`
2. there is no compare output
**Did this occur in prior versions? If not - which version(s) did it work in?**
I dont think this was working correctly ever.
this behaves as follows, no target is executed since /p:Target overrites /t: there is no way to set this parameter, the only way to pass the target is through scmp file passed through /p:SqlScmpFilePath
Source `microsoft.build.sql\0.1.15-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets` around line 900
I want to use compare this way because I intend to use AdditionalDeploymentContributors, to exclude some objects using their name not type and I dont think I can set this in a GUI version of a compare tool
Contributor guide
Research direction
Start with Microsoft.Data.Tools.Schema.SqlTasks.targets around line 900 and reproduce the issue using the documented msbuild SqlSchemaCompare command. Trace how Source and Target are interpreted, including the SqlScmpFilePath alternative. Done means the schema comparison target executes with a usable target input and produces compare output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, sql
- Domain
- build-system, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100