覆盖 SSDT 发布配置文件 ConnectionString
Override SSDT publish profile ConnectionString
我正在使用以下命令生成以使用 SSDT 发布数据库更改:
"C:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml
我想提供数据库连接字符串作为参数,而不是使用来自 publish.xml 的硬编码连接字符串。无论如何我可以覆盖它吗?
我试过:
"C:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml /TargetConnectionString:$ConnectionString
其中 $ConnectionString 是 Jenkins 的参数。但是,它仍然使用来自 publish.xml 的 ConnectionString。
我用反射器 (Microsoft.Data.Tools.Schema.CommandLineTool.ValidationUtil) 快速查看了源代码,结果是从命令行读取了 TargetConnectionString,然后发布配置文件中的值覆盖了该值 - 即恐怕无法更改。
有趣的是,在它获得来自 /TargetConnectionString 或发布配置文件的连接字符串后,它会应用单独的属性,例如 /TargetDatabaseName 所以 我认为(未经测试但从代码中看起来不错)如果您不传递 /TargetConnectionString 而传递单个组件,例如:
/TargetUser、/TargetPassword、/TargetDatabaseName、/TargetServerName 等
然后我认为它会覆盖发布配置文件中的连接字符串,它很难阅读所以让我知道你的进展情况!
编辑
我正在使用以下命令生成以使用 SSDT 发布数据库更改:
"C:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml
我想提供数据库连接字符串作为参数,而不是使用来自 publish.xml 的硬编码连接字符串。无论如何我可以覆盖它吗?
我试过:
"C:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml /TargetConnectionString:$ConnectionString
其中 $ConnectionString 是 Jenkins 的参数。但是,它仍然使用来自 publish.xml 的 ConnectionString。
我用反射器 (Microsoft.Data.Tools.Schema.CommandLineTool.ValidationUtil) 快速查看了源代码,结果是从命令行读取了 TargetConnectionString,然后发布配置文件中的值覆盖了该值 - 即恐怕无法更改。
有趣的是,在它获得来自 /TargetConnectionString 或发布配置文件的连接字符串后,它会应用单独的属性,例如 /TargetDatabaseName 所以 我认为(未经测试但从代码中看起来不错)如果您不传递 /TargetConnectionString 而传递单个组件,例如:
/TargetUser、/TargetPassword、/TargetDatabaseName、/TargetServerName 等
然后我认为它会覆盖发布配置文件中的连接字符串,它很难阅读所以让我知道你的进展情况!
编辑