private void TransferPackageButton_Click(object sender, EventArgs e) { try { Server server = new Server(_server); IntegrationServices isServer = new IntegrationServices(server); Catalog catalog = isServer.Catalogs["SSISDB"]; CatalogFolder folder = new CatalogFolder(catalog, "Test", "Test description");// catalog.Folders["ProSSIS"]; folder.Create(); Project localProject = CreateNewProject("newproject.ispac", "New Project"); folder.DeployProject("New Project", System.IO.File.ReadAllBytes("newprojects.ispac")); folder.Alter(); ProjectInfo newProject = folder.Projects["New Project"]; newProject.Move("ProSSIS"); newProject.Alter(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void DeployProject_Click(object sender, EventArgs e) { try { Server server = new Server(_server); IntegrationServices isServer = new IntegrationServices(server); Catalog catalog = isServer.Catalogs["SSISDB"]; CatalogFolder folder = catalog.Folders["ProSSIS"]; string projectFileName = "myproject.ispac"; folder.DeployProject("My ProSSIS Project", System.IO.File.ReadAllBytes(projectFileName)); folder.Alter(); ProjectInfo p = folder.Projects["My ProSSIS Project"]; p.References.Add("Environment1", folder.Name); p.Alter(); MessageBox.Show("Project deployed"); //using (Project project = Project.OpenProject(projectFileName)) //{ // MessageBox.Show("Project deployed"); //} } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private static void CreateProjectAndDeploy(CatalogFolder catalogFolder, string strProjectLocation, Package package) { byte[] projectStream = null; if (catalogFolder.Name != "CHEFFolder") { return; } //Create temporary location if it doesn't exist if (!Directory.Exists(strProjectLocation)) { Directory.CreateDirectory(strProjectLocation); } //Create Project and add the Package to it using (Project project = Project.CreateProject(strProjectLocation + @"\TempProject.ispac")) { project.Name = processID + "_" + processName + "_" + processType; project.Description = "Project Description"; //package.Parameters.Add("logValue", TypeCode.Boolean); //package.Parameters["logValue"].Value = true; project.PackageItems.Add(package, "Package.dtsx"); project.PackageItems[0].Package.Description = "Package Description"; //project.Parameters.Add("logValue", TypeCode.Boolean); project.Save(); } //Convert the Project to equivalent byte stream using (FileStream fileStream = new FileStream(strProjectLocation + @"\TempProject.ispac", FileMode.Open, FileAccess.Read)) { byte[] stream = new byte[fileStream.Length]; int numberOfBytesLeft = (int)fileStream.Length; int numberOfBytesRead = 0; while (numberOfBytesLeft > 0) { int n = fileStream.Read(stream, numberOfBytesRead, numberOfBytesLeft); if (n == 0) //end of file { break; } numberOfBytesRead += n; numberOfBytesLeft -= n; } projectStream = stream; } //Deploy the Project using (Project project = Project.OpenProject(strProjectLocation + @"\TempProject.ispac")) { catalogFolder.DeployProject(processID + "_" + processName + "_" + processType, projectStream); catalogFolder.Alter(); } //Delete temporary location Directory.Delete(strProjectLocation, true); //SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHEF"].ConnectionString); //conn.Open(); //SqlCommand comm = conn.CreateCommand(); //comm.CommandType = CommandType.Text; //comm.CommandText = "INSERT INTO [CHEF].[RequestQueue] VALUES(MONTH(SYSDATETIME()), YEAR(SYSDATETIME()), " + processID + ", " + strStartStepID + ", 1, NEWID(), SUSER_SNAME(), SYSDATETIME(), SYSDATETIME())"; //comm.ExecuteNonQuery(); //conn.Close(); //comm.Dispose(); }