示例#1
0
        private void createPackageButton_Click(object sender, EventArgs e)
        {
            //Prepare
            string[]     parts     = null;
            string       localName = null;
            AssemblyName name      = null;

            //Create
            using (SaveFileDialog saveDlg = new SaveFileDialog())
            {
                //Setup
                saveDlg.FileName = "Update";
                saveDlg.Filter   = "Abide Update Package Files (*.aup)|*.aup;";

                //Show
                if (saveDlg.ShowDialog() == DialogResult.OK)
                {
                    //Save
                    Settings.Default.ReleaseNotes = releaseNotesRichTextBox.Text;
                    Settings.Default.PackageUrl   = updatePackageUrlTextBox.Text;
                    Settings.Default.Save();

                    //Get Save Root
                    string saveRoot = Path.GetDirectoryName(saveDlg.FileName);

                    //Make Package
                    UpdatePackageFile package  = new UpdatePackageFile();
                    UpdateManifest    manifest = new UpdateManifest();
                    string[]          files    = node_GetFiles(filesTreeView.Nodes);

                    //Setup
                    manifest.Release      = DateTime.UtcNow;
                    manifest.ReleaseNotes = releaseNotesRichTextBox.Text;
                    manifest.PackageUrl   = updatePackageUrlTextBox.Text;

                    //Loop
                    foreach (string file in files)
                    {
                        //Setup
                        parts = file.Replace(root, string.Empty).Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
                        try { name = AssemblyName.GetAssemblyName(file); } catch { name = null; }
                        localName = string.Join("\\", parts);

                        //Add to manifest
                        manifest.Add(localName, name);

                        //Add to package
                        package.AddFile(file, localName);
                    }

                    //Save Manifest
                    using (FileStream fs = new FileStream(Path.Combine(saveRoot, "Update.xml"), FileMode.Create, FileAccess.Write, FileShare.Read))
                    {
                        //Create Writer
                        XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings()
                        {
                            Indent = true
                        });

                        //Write Manifest
                        manifest.SaveXml(writer);

                        //Close
                        writer.Close();
                    }

                    //Save Package
                    using (FileStream fs = new FileStream(saveDlg.FileName, FileMode.Create, FileAccess.Write, FileShare.Read))
                        package.Save(fs);
                }
            }
        }
示例#2
0
文件: Main.cs 项目: MikeMatt16/Abide
 private Main()
 {
     InitializeComponent();
     package = new UpdatePackageFile();
 }