我正在研究在将Web应用程序部署到IIS时自动发布dacpac的方法。
其中一种方法是使用dbDacFx提供程序通过Web Deploy本身。 请参阅:http://www.iis.net/learn/publish/using-web-deploy/dbdacfx-provider-for-incremental-database-publishing
它们为同步两个数据库提供的一些示例如下所示:
msdeloy.exe -Verb:Sync ^
-Source:dbDacFx="Data Source=.\SQLEXPRESS; Database=OldDatabase; User ID=sa; Password=P@$$W0rd" ^
-Dest:dbDacFx="Data Source=.\SQLEXPRESS; Database=NewDatabase; User ID=sa; Password=P@$$W0rd"
msdeloy.exe -Verb:Sync ^
-Source:dbDacFx="C:\Users\Admininstrator\Documents\database.dacpac" ^
-Dest:dbDacFx="Data Source=.\SQLEXPRESS; Database=NewDatabase; User ID=sa; Password=P@$$W0rd"
我的问题是为什么我不会使用SqlPackage.exe呢?
SqlPackage.exe /Action:Publish ^
/SourceConnectionString:"Data Source=.\SQLEXPRESS; Database=OldDatabase; User ID=sa; Password=P@$$W0rd" ^
/TargetConnectionString:"Data Source=.\SQLEXPRESS; Database=NewDatabase; User ID=sa; Password=P@$$W0rd"
SqlPackage.exe /Action:Publish ^
/SourceFile:"C:\Users\Admininstrator\Documents\database.dacpac" ^
/TargetConnectionString:"Data Source=.\SQLEXPRESS; Database=NewDatabase; User ID=sa; Password=P@$$W0rd"
据我所知,Web Deploy并没有带来任何新的东西。为什么dbDacFx提供程序甚至存在?
我已经考虑过的事情:
答案 0 :(得分:1)
我想你唯一能得到确切答案的方法就是在msdeploy团队中找人并问他们。
关于dacpacs非常棒的事情是SSDT团队已经构建了这些api(DacFX)并让它们可供所有人使用,因此人们可以自由地做这种事情,如果它帮助已经使用msdeploy的人们部署dacpacs那为什么不呢?
我见过几个不同的实现,visual studio有发布+模式比较,它们都使用DacFx。
如果你已经使用了sqlpackage并想使用它,那就去吧。