From: <dri...@us...> - 2007-04-16 13:27:00
|
Update of /cvsroot/nantcontrib/NAntContrib/src/Tasks/Msi In directory sc8-pr-cvs16:/tmp/cvs-serv11762/src/Tasks/Msi Modified Files: InstallerCreationCommand.cs MsiCreationCommand.cs MsmCreationCommand.cs Log Message: Moved MSI/MSM templates to etc directory. Embed MSI/MSM templates in NAnt.Contrib.Tasks.dll assembly to simplify deployment. Index: InstallerCreationCommand.cs =================================================================== RCS file: /cvsroot/nantcontrib/NAntContrib/src/Tasks/Msi/InstallerCreationCommand.cs,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** InstallerCreationCommand.cs 30 Dec 2006 15:14:49 -0000 1.31 --- InstallerCreationCommand.cs 16 Apr 2007 13:26:26 -0000 1.32 *************** *** 107,115 **** } ! protected abstract string TemplateFileName { get; } ! protected abstract string ErrorTemplateFileName { get; } --- 107,115 ---- } ! protected abstract string TemplateResourceName { get; } ! protected abstract string ErrorsResourceName { get; } *************** *** 2805,2820 **** string cabFilePath = Path.Combine(Project.BaseDirectory, Path.Combine(msi.sourcedir, CabFileName)); try { - // Open the Template MSI File - string source = GetCheckedTemplatePath(); - string errors = GetCheckedErrorTemplatePath(); - CleanOutput(cabFilePath, TempFolderPath); string dest = GetDestinationPath(); ! // Copy the template MSI file ! CopyFile(source, dest); Log(Level.Info, "Building Installer Database '{0}'.", msi.output); --- 2805,2823 ---- string cabFilePath = Path.Combine(Project.BaseDirectory, Path.Combine(msi.sourcedir, CabFileName)); + string errorsTempFile = null; try { CleanOutput(cabFilePath, TempFolderPath); string dest = GetDestinationPath(); ! // write the template resource to the destination file ! try { ! WriteResourceToFile(TemplateResourceName, dest); ! } catch (Exception ex) { ! throw new BuildException(string.Format(CultureInfo.InvariantCulture, ! "Failed writing template to destination file '{0}'.", dest), ! Location, ex); ! } Log(Level.Info, "Building Installer Database '{0}'.", msi.output); *************** *** 2825,2830 **** if (msi.debug) { ! // if debug is true, transform the error strings in ! database.ApplyTransform(errors); } --- 2828,2842 ---- if (msi.debug) { ! errorsTempFile = Path.GetTempFileName(); ! try { ! // write errors template to file ! WriteResourceToFile(ErrorsResourceName, errorsTempFile); ! // if debug is true, transform the error strings in ! database.ApplyTransform(errorsTempFile); ! } catch (IOException ex) { ! throw new BuildException(string.Format(CultureInfo.InvariantCulture, ! "Failed writing errors template to '{0}'.", errorsTempFile), ! Location, ex); ! } } *************** *** 2848,2851 **** --- 2860,2866 ---- } finally { CleanOutput(cabFilePath, TempFolderPath); + if (errorsTempFile != null) { + File.Delete(errorsTempFile); + } } } *************** *** 2899,2924 **** } ! private string GetCheckedErrorTemplatePath() { ! string errors = Path.Combine(TemplateFolder, ErrorTemplateFileName); ! if (msi.errortemplate != null) { ! errors = Path.Combine(Project.BaseDirectory, msi.errortemplate); ! } ! if (!File.Exists(errors)) { ! throw new BuildException(string.Format(CultureInfo.InvariantCulture, ! "Unable to find error template file {0}.", errors), Location); ! } ! return errors; ! } ! ! private string GetCheckedTemplatePath() { ! string source = Path.Combine(TemplateFolder, TemplateFileName); ! if (msi.template != null) { ! source = Path.Combine(Project.BaseDirectory, msi.template); ! } ! if (!File.Exists(source)) { ! throw new BuildException(string.Format(CultureInfo.InvariantCulture, ! "Unable to find template file {0}.", source), Location); } - return source; } --- 2914,2930 ---- } ! private void WriteResourceToFile (string resourceName, string fileName) { ! using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) { ! using (FileStream fs = File.Create(fileName)) { ! byte[] buffer = new byte[4096]; ! int bytesRead = s.Read(buffer, 0, buffer.Length); ! while (bytesRead > 0) { ! fs.Write(buffer, 0, bytesRead); ! bytesRead = s.Read(buffer, 0, buffer.Length); ! } ! fs.Flush(); ! } ! s.Close(); } } Index: MsiCreationCommand.cs =================================================================== RCS file: /cvsroot/nantcontrib/NAntContrib/src/Tasks/Msi/MsiCreationCommand.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MsiCreationCommand.cs 25 Jun 2005 06:09:27 -0000 1.11 --- MsiCreationCommand.cs 16 Apr 2007 13:26:27 -0000 1.12 *************** *** 48,56 **** } ! protected override string TemplateFileName { get { return "MSITaskTemplate.msi"; } } ! protected override string ErrorTemplateFileName { get { return "MSITaskErrors.mst"; } } --- 48,56 ---- } ! protected override string TemplateResourceName { get { return "MSITaskTemplate.msi"; } } ! protected override string ErrorsResourceName { get { return "MSITaskErrors.mst"; } } Index: MsmCreationCommand.cs =================================================================== RCS file: /cvsroot/nantcontrib/NAntContrib/src/Tasks/Msi/MsmCreationCommand.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MsmCreationCommand.cs 10 Apr 2005 18:21:28 -0000 1.5 --- MsmCreationCommand.cs 16 Apr 2007 13:26:27 -0000 1.6 *************** *** 41,45 **** } ! protected override string TemplateFileName { get { return "MSMTaskTemplate.msm"; --- 41,45 ---- } ! protected override string TemplateResourceName { get { return "MSMTaskTemplate.msm"; *************** *** 47,51 **** } ! protected override string ErrorTemplateFileName { get { return "MSMTaskErrors.mst"; --- 47,51 ---- } ! protected override string ErrorsResourceName { get { return "MSMTaskErrors.mst"; |