internal static void PublishDacpacFile(ICakeContext context, string connectionString, string targetDatabaseName, string dacpacFilePath, PublishDacpacSettings settings = null) { context.Log.Information($"About to publish dacpac from {dacpacFilePath} into database {targetDatabaseName}"); var dacPackage = DacPackage.Load(dacpacFilePath); context.Log.Debug($"Loaded dacpac file {dacpacFilePath}"); var service = new DacServices(connectionString); var options = GetPublishOptions(settings); service.Publish(dacPackage, targetDatabaseName, options); context.Log.Information($"Finished restoring dacpac file into database {targetDatabaseName}"); }
/// <summary>Find by dacpac file in directory</summary> public static (string DataBaseScript, string DeploymentReport, string masterDbScript) Publish(this DacPackage package, string connectionString , PublishOptions options = null , EventHandler <DacProgressEventArgs> progressChanged = null , EventHandler <DacMessageEventArgs> messageEvent = null) { var connString = new Microsoft.Data.SqlClient.SqlConnectionStringBuilder(connectionString.Trim()); var dacService = new DacServices(connString.ToString()); if (progressChanged != null) { dacService.ProgressChanged += progressChanged; } if (messageEvent != null) { dacService.Message += messageEvent; } var result = dacService.Publish(package, connString.InitialCatalog, options); return(result.DatabaseScript, result.DeploymentReport, result.MasterDbScript); }