public void Generate() { Directory.CreateDirectory(Path.GetDirectoryName(DtProjFilePath)); ProjectWrapper.SaveTo(IspacFilePath); // Extract (from the .ispac) and create the basic files we need. ExtractRequiredFiles(); GenerateDtProj(); // Create other files required to prevent SSIS from thinking the whole project has been modified. GenerateDatabase(); GenerateUser(); // Create the obj files. string dtProjDirectory = Path.GetDirectoryName(DtProjFilePath); string objDirectory = Path.Combine(dtProjDirectory, "obj", "Development"); Directory.CreateDirectory(objDirectory); foreach (string file in Directory.GetFiles(dtProjDirectory)) { string extension = Path.GetExtension(file); if (extension == ".conmgr" || extension == ".dtproj" || extension == ".dtsx" || extension == ".params") { File.Copy(file, Path.Combine(objDirectory, Path.GetFileName(file))); } } GenerateBuildLog(); // Copy .ispac to bin directory. string binDirectory = Path.Combine(dtProjDirectory, "bin", "Development"); string ispacDestinationFilePath = Path.Combine(binDirectory, $"{Name}.ispac"); Directory.CreateDirectory(binDirectory); File.Copy(IspacFilePath, ispacDestinationFilePath); // Touch last modified time in order to make the .ispac more recent than everything else. File.SetLastWriteTime(ispacDestinationFilePath, DateTime.Now); }