private void OnSignAndSave(object sender, EventArgs e)
        {
            // Make sure the entered cert file exists
            if (File.Exists(m_PathTextBox.Text))
            {
                // Update hashes and size info for files
                m_AppManifest.ResolveFiles();
                m_AppManifest.UpdateFileInfo();

                // Write app manifest
                ManifestWriter.WriteManifest(m_AppManifest);

                // Sign app manifest
                ManifestHelper.SignManifest(m_AppManifest, m_PathTextBox.Text, m_PasswordTextBox.Text);
                ManifestHelper.UpdateDeployManifestAppReference(m_DeployManifest, m_AppManifest);

                // Write deploy manifest
                ManifestWriter.WriteManifest(m_DeployManifest);

                // sign deploy manifest
                ManifestHelper.SignManifest(m_DeployManifest, m_PathTextBox.Text, m_PasswordTextBox.Text);
                DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                m_ErrorProvider.SetError(m_PathTextBox, "Invalid Path");
            }
        }
        /// <summary>
        /// Allows user to point to a different app manifest
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnSelectAppManifest(object sender, EventArgs e)
        {
            // Prompt for path
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "Application Manifests (*.manifest)|*.manifest|All Files (*.*)|*.*";

            // Use last path if available
            if (!string.IsNullOrEmpty(Settings.Default.LastManifestPath) &&
                (Directory.Exists(Settings.Default.LastManifestPath)))
            {
                ofd.InitialDirectory = Settings.Default.LastManifestPath;
            }

            // Load file list if user selects manifest
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string fileName = ofd.FileName;
                try
                {
                    m_AppManifest   = ManifestHelper.LoadAppManifest(fileName);
                    m_Prerequisites = ManifestHelper.GetPrerequisites(m_AppManifest);
                    m_Files         = ManifestHelper.GetFiles(m_AppManifest);
                    filesBindingSource.DataSource = m_Files;
                    ManifestHelper.UpdateDeployManifestAppReference(m_DeployManifest, m_AppManifest);
                    appManifestPathTextBox.Text = m_DeployManifest.EntryPoint.TargetPath;
                    EnableToolStripItems(true);
                }
                catch
                {
                    MessageBox.Show("Invalid manifest");
                }
            }
        }