通过SSDT项目以编程方式创建dacpac文件

问题描述 投票:2回答:2

是否可以从现有的SSDT项目中创建“新” .dacpac文件?我希望能够在每次自动端到端测试之前重新创建数据库(拆卸+设置):

const string dacPacFileName = @"D:\Bla.dacpac";
var connectionString = ConfigurationManager.ConnectionStrings["BlaConnectionString"].ConnectionString;

var dacPackage = DacPackage.Load(dacPacFileName);
var dacServices = new DacServices(connectionString);      
var dacOptions = new DacDeployOptions();
dacOptions.CreateNewDatabase = true;
dacServices.Deploy(dacPackage, "Bla", true, dacOptions); 
c# sql-server sql-server-2014 sql-server-data-tools sql-server-data-project
2个回答
2
投票

我已经通过使用PowerShell通过调用类似方法完成此操作

> msbuild.exe <mysolution>.sln /p:Configuration=<myconfig>

这将建立解决方案,并且应该制作dacpac。

之后我打电话

> sqlpackage.exe /Action:<someaction> /SourceFile:<thatdacpac> /Profile:<publishprofile>

但是,如果要部署dacpac而不是进行模式比较和发布,则可能只需要第一步。有帮助吗?


0
投票
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
    WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
    FileName = @"C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe",
    Arguments = "/TargetFile:D:/output_target.dacpac /Action:Extract 
                /SourceServerName:ServerName /SourceDatabaseName:DatabaseName 
                /SourceUser:UserId /SourcePassword:Password"
};
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
© www.soinside.com 2019 - 2024. All rights reserved.