#At file:///C:/Users/Reggie/work/wex/installer-updated/ based on revid:reggie.burnett@stripped1imx7ges4qpmzr
265 Reggie Burnett 2011-01-24
initial push of manifest manager. It's not done yet
added:
ManifestManager/
ManifestManager/Form1.Designer.cs
ManifestManager/Form1.cs
ManifestManager/Form1.resx
ManifestManager/ManifestManager.csproj
ManifestManager/Package.cs
ManifestManager/Product.cs
ManifestManager/ProductCatalog.cs
ManifestManager/ProductCategory.cs
ManifestManager/ProductFeature.cs
ManifestManager/ProductManifest.cs
ManifestManager/Program.cs
ManifestManager/Properties/
ManifestManager/Properties/AssemblyInfo.cs
ManifestManager/Properties/Resources.Designer.cs
ManifestManager/Properties/Resources.resx
ManifestManager/app.config
=== added directory 'ManifestManager'
=== added file 'ManifestManager/Form1.Designer.cs'
=== added directory 'ManifestManager'
=== added file 'ManifestManager/Form1.Designer.cs'
--- a/ManifestManager/Form1.Designer.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Form1.Designer.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,212 @@
+namespace ManifestManager
+{
+ partial class Form1
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+ this.mainMenu = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openManifestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveManifestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.addButton = new System.Windows.Forms.ToolStripButton();
+ this.removeButton = new System.Windows.Forms.ToolStripButton();
+ this.manifestTree = new System.Windows.Forms.TreeView();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.splitter1 = new System.Windows.Forms.Splitter();
+ this.properties = new System.Windows.Forms.PropertyGrid();
+ this.mainMenu.SuspendLayout();
+ this.toolStrip1.SuspendLayout();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // mainMenu
+ //
+ this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem});
+ this.mainMenu.Location = new System.Drawing.Point(0, 0);
+ this.mainMenu.Name = "mainMenu";
+ this.mainMenu.Size = new System.Drawing.Size(672, 24);
+ this.mainMenu.TabIndex = 1;
+ this.mainMenu.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.openManifestToolStripMenuItem,
+ this.saveManifestToolStripMenuItem,
+ this.toolStripMenuItem1,
+ this.exitToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "&File";
+ //
+ // openManifestToolStripMenuItem
+ //
+ this.openManifestToolStripMenuItem.Name = "openManifestToolStripMenuItem";
+ this.openManifestToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
+ this.openManifestToolStripMenuItem.Text = "&Open...";
+ this.openManifestToolStripMenuItem.Click += new System.EventHandler(this.openManifestToolStripMenuItem_Click);
+ //
+ // saveManifestToolStripMenuItem
+ //
+ this.saveManifestToolStripMenuItem.Enabled = false;
+ this.saveManifestToolStripMenuItem.Name = "saveManifestToolStripMenuItem";
+ this.saveManifestToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
+ this.saveManifestToolStripMenuItem.Text = "&Save";
+ this.saveManifestToolStripMenuItem.Click += new System.EventHandler(this.saveManifestToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Enabled = false;
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(125, 22);
+ this.toolStripMenuItem1.Text = "&Options...";
+ //
+ // exitToolStripMenuItem
+ //
+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
+ this.exitToolStripMenuItem.Text = "E&xit";
+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+ //
+ // toolStrip1
+ //
+ this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+ this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.addButton,
+ this.removeButton});
+ this.toolStrip1.Location = new System.Drawing.Point(0, 492);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(200, 25);
+ this.toolStrip1.TabIndex = 1;
+ this.toolStrip1.Text = "toolStrip1";
+ //
+ // addButton
+ //
+ this.addButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+ this.addButton.Enabled = false;
+ this.addButton.Image = ((System.Drawing.Image)(resources.GetObject("addButton.Image")));
+ this.addButton.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.addButton.Name = "addButton";
+ this.addButton.Size = new System.Drawing.Size(23, 22);
+ this.addButton.Text = "+";
+ this.addButton.Click += new System.EventHandler(this.addButton_Click);
+ //
+ // removeButton
+ //
+ this.removeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+ this.removeButton.Enabled = false;
+ this.removeButton.Image = ((System.Drawing.Image)(resources.GetObject("removeButton.Image")));
+ this.removeButton.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.removeButton.Name = "removeButton";
+ this.removeButton.Size = new System.Drawing.Size(23, 22);
+ this.removeButton.Text = "-";
+ this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
+ //
+ // manifestTree
+ //
+ this.manifestTree.Dock = System.Windows.Forms.DockStyle.Top;
+ this.manifestTree.Location = new System.Drawing.Point(0, 0);
+ this.manifestTree.Name = "manifestTree";
+ this.manifestTree.Size = new System.Drawing.Size(200, 489);
+ this.manifestTree.TabIndex = 2;
+ this.manifestTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.manifestTree_AfterSelect);
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.manifestTree);
+ this.panel1.Controls.Add(this.toolStrip1);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.panel1.Location = new System.Drawing.Point(0, 24);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(200, 517);
+ this.panel1.TabIndex = 3;
+ //
+ // splitter1
+ //
+ this.splitter1.Location = new System.Drawing.Point(200, 24);
+ this.splitter1.Name = "splitter1";
+ this.splitter1.Size = new System.Drawing.Size(3, 517);
+ this.splitter1.TabIndex = 4;
+ this.splitter1.TabStop = false;
+ //
+ // properties
+ //
+ this.properties.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.properties.Location = new System.Drawing.Point(203, 24);
+ this.properties.Name = "properties";
+ this.properties.Size = new System.Drawing.Size(469, 517);
+ this.properties.TabIndex = 5;
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(672, 541);
+ this.Controls.Add(this.properties);
+ this.Controls.Add(this.splitter1);
+ this.Controls.Add(this.panel1);
+ this.Controls.Add(this.mainMenu);
+ this.MainMenuStrip = this.mainMenu;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "Form1";
+ this.Text = "Manifest Manager";
+ this.mainMenu.ResumeLayout(false);
+ this.mainMenu.PerformLayout();
+ this.toolStrip1.ResumeLayout(false);
+ this.toolStrip1.PerformLayout();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.MenuStrip mainMenu;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem openManifestToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem saveManifestToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
+ private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
+ private System.Windows.Forms.ToolStrip toolStrip1;
+ private System.Windows.Forms.ToolStripButton addButton;
+ private System.Windows.Forms.ToolStripButton removeButton;
+ private System.Windows.Forms.TreeView manifestTree;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Splitter splitter1;
+ private System.Windows.Forms.PropertyGrid properties;
+ }
+}
+
=== added file 'ManifestManager/Form1.cs'
--- a/ManifestManager/Form1.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Form1.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,227 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Xml.Serialization;
+using WexInstaller.Core;
+using System.IO;
+using System.Collections;
+
+namespace ManifestManager
+{
+ public partial class Form1 : Form
+ {
+ private ProductManifest manifest;
+ private string fileName;
+
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Application.Exit();
+ }
+
+ private void openManifestToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog dlg = new OpenFileDialog();
+ dlg.InitialDirectory = Path.GetFullPath(Application.ExecutablePath);
+ dlg.Filter = "MySQL Product Manifests (*.xml)|*.xml";
+ DialogResult result = dlg.ShowDialog();
+ if (result == DialogResult.Cancel) return;
+
+ fileName = dlg.FileName;
+ OpenManifest(dlg.FileName);
+ }
+
+ private void saveManifestToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ XmlSerializer s = new XmlSerializer(typeof(ProductManifest));
+ TextWriter w = new StreamWriter(fileName);
+ s.Serialize(w, manifest);
+ w.Close();
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Unable to save manifest. Error: " + ex.Message);
+ return;
+ }
+ }
+
+ private void OpenManifest(string filename)
+ {
+ try
+ {
+ XmlRootAttribute productCategories = new XmlRootAttribute("ProductManifest");
+ XmlSerializer s = new XmlSerializer(typeof(ProductManifest));
+ TextReader w = new StreamReader(filename);
+ manifest = (ProductManifest)s.Deserialize(w);
+ w.Close();
+ if (manifest == null)
+ {
+ MessageBox.Show("Unable to parse product manifest");
+ return;
+ }
+ saveManifestToolStripMenuItem.Enabled = true;
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Unable to parse product manifest. Error: " + ex.Message);
+ return;
+ }
+
+ LoadTree();
+ }
+
+ private void LoadTree()
+ {
+ manifestTree.Nodes.Clear();
+
+ TreeNode manifestNode = manifestTree.Nodes.Add("Manifest");
+ manifestNode.Tag = manifest;
+ TreeNode catalogsNode = manifestTree.Nodes.Add("Catalogs");
+ catalogsNode.Tag = manifest.ProductCatalogs;
+
+ foreach (ProductCatalog cat in manifest.ProductCatalogs)
+ LoadCatalog(catalogsNode, cat);
+ }
+
+ private void LoadCatalog(TreeNode parentNode, ProductCatalog cat)
+ {
+ TreeNode catNode = parentNode.Nodes.Add(cat.Name);
+ catNode.Tag = cat;
+ TreeNode setupTypesNode = catNode.Nodes.Add("Setup Types");
+ setupTypesNode.Tag = cat.SetupTypes;
+ foreach (SetupType setupType in cat.SetupTypes)
+ LoadSetupType(setupTypesNode, setupType);
+ TreeNode productsNode = catNode.Nodes.Add("Included Products");
+ productsNode.Tag = cat.Products;
+ foreach (CatalogProduct catProduct in cat.Products)
+ LoadCatalogProduct(productsNode, catProduct);
+ }
+
+ private void LoadSetupType(TreeNode parentNode, SetupType setupType)
+ {
+ TreeNode setupTypeNode = parentNode.Nodes.Add(setupType.Name);
+ setupTypeNode.Tag = setupType;
+ }
+
+ private void LoadCatalogProduct(TreeNode parentNode, CatalogProduct product)
+ {
+ TreeNode catProductNode = parentNode.Nodes.Add(product.ProductId);
+ catProductNode.Tag = product;
+ }
+ // }
+ // TreeNode categoriesNode = manifestTree.Nodes.Add("Categories");
+ // categoriesNode.Tag = manifest.ProductCategories;
+ // foreach (ProductCategory category in manifest.ProductCategories)
+ // {
+ // TreeNode categoryNode = categoriesNode.Nodes.Add(category.Name);
+ // foreach (Product p in category.Products)
+ // {
+ // TreeNode productNode = categoryNode.Nodes.Add(p.Name);
+ // productNode.Tag = p;
+ // foreach (Package package in p.Packages)
+ // {
+ // TreeNode packageNode = productNode.Nodes.Add(package.Id);
+ // packageNode.Tag = package;
+ // }
+ // }
+ // }
+ //}
+
+ private void addButton_Click(object sender, EventArgs e)
+ {
+ if (manifestTree.SelectedNode == null) return;
+ TreeNode node = manifestTree.SelectedNode;
+
+ if (node.Tag is ICollection<ProductCatalog>)
+ AddCatalogNode(node);
+ else if (node.Tag is ICollection<SetupType>)
+ AddSetupTypeNode(node);
+ else if (node.Tag is ICollection<CatalogProduct>)
+ AddCatalogProduct(node);
+ }
+
+ private void AddCatalogNode(TreeNode node)
+ {
+ ProductCatalog newCat = new ProductCatalog();
+ newCat.Name = "New Catalog";
+ manifest.ProductCatalogs.Add(newCat);
+ LoadCatalog(node, newCat);
+ }
+
+ private void AddSetupTypeNode(TreeNode node)
+ {
+ SetupType setupType = new SetupType();
+ setupType.Name = "New Setup Type";
+ ProductCatalog cat = node.Parent.Tag as ProductCatalog;
+ cat.SetupTypes.Add(setupType);
+ LoadSetupType(node, setupType);
+ }
+
+ private void AddCatalogProduct(TreeNode node)
+ {
+ CatalogProduct catProduct = new CatalogProduct();
+ catProduct.ProductId = "New Product";
+ ProductCatalog cat = node.Parent.Tag as ProductCatalog;
+ cat.Products.Add(catProduct);
+ LoadCatalogProduct(node, catProduct);
+ }
+
+
+ //private void EditCategoryNode(TreeNode node)
+ //{
+ // CategoryEditorDlg dlg = new CategoryEditorDlg();
+ // dlg.Category = node.Tag as ProductCategory;
+ // dlg.ShowDialog();
+ // if (dlg.DialogResult == DialogResult.Cancel) return;
+
+ // if (node.Tag == null)
+ // {
+ // TreeNode newNode = node.Nodes.Add(dlg.Category.Name);
+ // newNode.Tag = dlg.Category;
+ // manifest.ProductCategories.Add(dlg.Category);
+ // }
+ //}
+
+ private void removeButton_Click(object sender, EventArgs e)
+ {
+ if (manifestTree.SelectedNode == null) return;
+
+ TreeNode node = manifestTree.SelectedNode;
+ TreeNode parent = node.Parent;
+
+ DialogResult confirm = MessageBox.Show(
+ "Are you sure you want to remove '" + node.Text + "'?", "Confirm",
+ MessageBoxButtons.YesNo, MessageBoxIcon.Question);
+ if (confirm == DialogResult.No) return;
+
+ parent.Nodes.Remove(node);
+ (parent.Tag as IList).Remove(node.Tag);
+ }
+
+ private void manifestTree_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ object o = e.Node.Tag;
+ addButton.Enabled = (o != null && o is ICollection);
+ removeButton.Enabled = (o != null && !(o is ICollection));
+ if (addButton.Enabled)
+ {
+ properties.SelectedObject = null;
+ return;
+ }
+ if (! (o is ICollection))
+ properties.SelectedObject = o;
+ }
+
+ }
+}
=== added file 'ManifestManager/Form1.resx'
--- a/ManifestManager/Form1.resx 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Form1.resx 2011-01-24 21:36:57 +0000
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>127, 17</value>
+ </metadata>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="addButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
+ ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
+ HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
+ rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
+ TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
+ oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
+ 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
+ xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
+ LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
+ KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+</value>
+ </data>
+ <data name="removeButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
+ ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
+ HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
+ rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
+ TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
+ oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
+ 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
+ xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
+ LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
+ KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
+</value>
+ </data>
+</root>
\ No newline at end of file
=== added file 'ManifestManager/ManifestManager.csproj'
--- a/ManifestManager/ManifestManager.csproj 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/ManifestManager.csproj 2011-01-24 21:36:57 +0000
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ManifestManager</RootNamespace>
+ <AssemblyName>ManifestManager</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <PlatformTarget>x86</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Form1.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Form1.Designer.cs">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Package.cs" />
+ <Compile Include="Product.cs" />
+ <Compile Include="ProductCatalog.cs" />
+ <Compile Include="ProductCategory.cs" />
+ <Compile Include="ProductFeature.cs" />
+ <Compile Include="ProductManifest.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="Form1.resx">
+ <DependentUpon>Form1.cs</DependentUpon>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ <DesignTime>True</DesignTime>
+ </Compile>
+ <None Include="app.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup />
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
=== added file 'ManifestManager/Package.cs'
--- a/ManifestManager/Package.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Package.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,122 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Xml.Serialization;
+using Microsoft.Win32;
+using System.Diagnostics;
+using System.ComponentModel;
+
+namespace WexInstaller.Core
+{
+ public class Package
+ {
+ [XmlAttribute("type")]
+ public PackageType Type { get; set; }
+
+ [XmlAttribute("arch")]
+ public PackageArchitecture Architecture { get; set; }
+
+ [XmlAttribute("filename")]
+ public string FileName { get; set; }
+
+ [XmlAttribute("id")]
+ public string Id { get; set; }
+
+ [XmlAttribute("thisVersion")]
+ public string ThisVersion { get; set; }
+
+ [Browsable(false)]
+ [XmlElement("Feature")]
+ public List<ProductFeature> Features { get; set; }
+
+ //public long GetInstallationSizeEstimate()
+ //{
+ // long defaultBase = 0;
+
+ // if (FoundLocal)
+ // {
+ // // Disable MSI UI.
+ // InstallUILevel internalUILevel = InstallUILevel.None;
+
+ // if (msiVersion.FileMajorPart >= 5)
+ // {
+ // // Allow to installer to elevate, even in silent mode
+ // internalUILevel |= InstallUILevel.UACOnly;
+ // }
+ // MsiInterop.MsiSetInternalUI(internalUILevel, IntPtr.Zero);
+
+ // UIntPtr packageHandle = UIntPtr.Zero;
+ // uint retVal = MsiInterop.MsiOpenPackage(FullPath, ref packageHandle);
+
+ // if (retVal == 0)
+ // {
+ // uint results = 0;
+ // results += MsiInterop.MsiDoAction(packageHandle, "CostInitialize");
+ // results += MsiInterop.MsiDoAction(packageHandle, "FileCost");
+ // results += MsiInterop.MsiDoAction(packageHandle, "CostFinalize");
+ // results += MsiInterop.MsiDoAction(packageHandle, "InstallValidate");
+ // // The EstimateSize is not available until after the InstallValidate action is complete.
+
+ // if (results == 0)
+ // {
+ // // Now, you can find the estimated size per feature.
+ // foreach (ProductFeature f in Features)
+ // {
+ // int cost = 0;
+ // if (MsiInterop.MsiGetFeatureCost(packageHandle, f.Name, MSICostTree.Self, InstallState.Source, out cost) == 0)
+ // if (cost != -2147483648) // Null value returned when EstimateSize is uninitialized.
+ // f.SizeEstimate = cost * 512 * 1024; // Number of bytes
+ // defaultBase += f.SizeEstimate;
+
+ // foreach (ProductFeature f1 in f.Features)
+ // {
+ // int cost1 = 0;
+ // if (MsiInterop.MsiGetFeatureCost(packageHandle, f1.Name, MSICostTree.Self, InstallState.Source, out cost1) == 0)
+ // if (cost != -2147483648)
+ // f1.SizeEstimate = cost1 * 512 * 1024; // Number of bytes
+ // defaultBase += f1.SizeEstimate;
+ // }
+ // }
+ // }
+ // else
+ // {
+ // // Invalid package.
+ // }
+ // }
+
+ // MsiInterop.MsiCloseHandle(packageHandle);
+ // }
+
+ // return defaultBase;
+ //}
+ }
+
+ public enum PackageType
+ {
+ MSI
+ }
+
+ public enum PackageArchitecture
+ {
+ X86,
+ X64,
+ Any
+ }
+
+ public enum PackagePlatform
+ {
+ Windows,
+ Any
+ }
+
+ public enum PackageMaturity
+ {
+ CTP,
+ Alpha,
+ Beta,
+ RC,
+ GA
+ }
+
+}
=== added file 'ManifestManager/Product.cs'
--- a/ManifestManager/Product.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Product.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Xml.Serialization;
+using System.Collections.ObjectModel;
+using WexInstaller.Core;
+using System.Reflection;
+using System.Diagnostics;
+using System.Net;
+using System.ComponentModel;
+using System.Threading;
+using System.IO;
+
+namespace WexInstaller.Core
+{
+ public class Product : ProductElement
+ {
+ public List<Package> Packages { get; set; }
+
+ [XmlAttribute("upgradeId")]
+ public string UpgradeId { get; set; }
+
+ [XmlAttribute("urlBaseDir")]
+ public string UrlBase { get; set; }
+
+ //public long GetInstallationSizeEstimate()
+ //{
+ // return GetPackage().GetInstallationSizeEstimate();
+ //}
+ }
+
+}
=== added file 'ManifestManager/ProductCatalog.cs'
--- a/ManifestManager/ProductCatalog.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/ProductCatalog.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+using System.Runtime.Serialization;
+using System.ComponentModel;
+
+namespace WexInstaller.Core
+{
+ public class ProductCatalog
+ {
+ public ProductCatalog()
+ {
+ SetupTypes = new List<SetupType>();
+ Products = new List<CatalogProduct>();
+ }
+
+ [XmlAttribute("id")]
+ public string Id { get; set; }
+
+ [XmlAttribute("name")]
+ public string Name { get; set; }
+
+ [XmlAttribute("description")]
+ public string Description { get; set; }
+
+ [XmlAttribute("commercial")]
+ public bool Commercial { get; set; }
+
+ [Browsable(false)]
+ [XmlArray("SetupTypes")]
+ public List<SetupType> SetupTypes { get; set; }
+
+ [Browsable(false)]
+ [XmlArray("CatalogProducts")]
+ public List<CatalogProduct> Products { get; set; }
+ }
+
+ public class CatalogProduct
+ {
+ [XmlIgnore]
+ public Product ReferencedProduct;
+
+ [XmlAttribute("productId")]
+ public string ProductId { get; set; }
+
+ [XmlAttribute("setupTypeFlags")]
+ public int SetupTypeFlag { get; set; }
+ }
+
+ public enum SetupTypeFlag : int
+ {
+ Default=1,
+ ServerOnly=2,
+ Full=64,
+ Custom=128
+ }
+
+ public class SetupType
+ {
+ [XmlAttribute("flag")]
+ public int Flag { get; set; }
+
+ [XmlAttribute("name")]
+ public string Name { get; set; }
+
+ [XmlAttribute("description")]
+ public string Description { get; set; }
+ }
+}
=== added file 'ManifestManager/ProductCategory.cs'
--- a/ManifestManager/ProductCategory.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/ProductCategory.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace WexInstaller.Core
+{
+ public class ProductCategory : ProductElement
+ {
+ [XmlElement("Product")]
+ public List<Product> Products;
+
+ //public long GetInstallationSizeEstimate()
+ //{
+ // long sizeEst = 0;
+ // foreach (Product p in Products)
+ // sizeEst = p.GetInstallationSizeEstimate();
+ // return sizeEst;
+ //}
+ }
+
+ public enum ProductCategoryType
+ {
+ Server = 0,
+ Application,
+ Connector,
+ AddIn,
+ Documentation,
+ Tutorials
+ }
+}
=== added file 'ManifestManager/ProductFeature.cs'
--- a/ManifestManager/ProductFeature.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/ProductFeature.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Collections.ObjectModel;
+using System.Xml.Serialization;
+using System.Drawing;
+using System.Resources;
+
+namespace WexInstaller.Core
+{
+ abstract public class ProductElement
+ {
+ private Image icon;
+
+ [XmlIgnore]
+ public ProductElement Parent { get; private set; }
+
+ [XmlAttribute("name")]
+ public string Name { get; set; }
+
+ [XmlAttribute("title")]
+ public string Title { get; set; }
+
+ [XmlAttribute("description")]
+ public string Description { get; set; }
+ }
+
+ public class ProductFeature : ProductElement
+ {
+ private bool proposedInstalled;
+
+ [XmlAttribute("id")]
+ public string Id { get; set; }
+
+ [XmlAttribute("default")]
+ public bool IncludeInDefault { get; set; }
+
+ [XmlAttribute("size")]
+ public long SizeEstimate { get; set; }
+
+ [XmlAttribute("display")]
+ public string Display { get; set; }
+
+ [XmlAttribute("hasComponents")]
+ public string HasComponents { get; set; }
+
+ [XmlElement("Feature")]
+ public List<ProductFeature> Features { get; set; }
+
+ public ProductFeature()
+ {
+ Features = new List<ProductFeature>();
+ }
+
+ public virtual long GetInstallationSizeEstimate()
+ {
+ long sizeEst = 0;
+ foreach (ProductFeature f in Features)
+ sizeEst += f.SizeEstimate;
+ sizeEst += SizeEstimate;
+ return sizeEst;
+ }
+
+ }
+}
=== added file 'ManifestManager/ProductManifest.cs'
--- a/ManifestManager/ProductManifest.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/ProductManifest.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,33 @@
+ï»g System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+using System.IO;
+using System.ComponentModel;
+
+namespace WexInstaller.Core
+{
+ public sealed class ProductManifest
+ {
+ [XmlAttribute("version")]
+ public int Version { get; set; }
+
+ [XmlAttribute("format")]
+ public int Format { get; set; }
+
+ [XmlElement("UpdateVersion")]
+ public string UpdateVersion { get; set; }
+
+ [XmlElement("UpdateURL")]
+ public string UpdateUrl { get; set; }
+
+ [Browsable(false)]
+ [XmlArray()]
+ public List<ProductCatalog> ProductCatalogs;
+
+ [Browsable(false)]
+ [XmlArray]
+ public List<ProductCategory> ProductCategories;
+ }
+}
=== added file 'ManifestManager/Program.cs'
--- a/ManifestManager/Program.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Program.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace ManifestManager
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
=== added directory 'ManifestManager/Properties'
=== added file 'ManifestManager/Properties/AssemblyInfo.cs'
--- a/ManifestManager/Properties/AssemblyInfo.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Properties/AssemblyInfo.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ManifestManager")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("ManifestManager")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("023a5a28-a7a2-40ef-a700-3da90d439dee")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
=== added file 'ManifestManager/Properties/Resources.Designer.cs'
--- a/ManifestManager/Properties/Resources.Designer.cs 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Properties/Resources.Designer.cs 2011-01-24 21:36:57 +0000
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.1
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace ManifestManager.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ManifestManager.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
=== added file 'ManifestManager/Properties/Resources.resx'
--- a/ManifestManager/Properties/Resources.resx 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/Properties/Resources.resx 2011-01-24 21:36:57 +0000
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
=== added file 'ManifestManager/app.config'
--- a/ManifestManager/app.config 1970-01-01 00:00:00 +0000
+++ b/ManifestManager/app.config 2011-01-24 21:36:57 +0000
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
Attachment: [text/bzr-bundle] bzr/reggie.burnett@oracle.com-20110124213657-awu4crxua2tff59w.bundle
| Thread |
|---|
| • bzr commit into wex-installer-1.0 branch (reggie.burnett:265) | Reggie Burnett | 24 Jan |