Beispiel #1
0
        void LoadSettings()
        {
            Util.BootstrapperPackage[] packages = Util.BootstrapperPackage.GetBootstrappers();
            DataTable tablePackages             = new DataTable("Packages");

            tablePackages.Columns.Add("ProductCode", typeof(string));
            tablePackages.Columns.Add("DisplayName", typeof(string));
            tablePackages.Columns.Add("Checked", typeof(bool));
            tablePackages.DefaultView.Sort = "DisplayName ASC";

            ItemGroup itemGroup = config.ItemGroupBootstrapperPackages;

            foreach (Util.BootstrapperPackage package in packages)
            {
                string ProductCode = package.ProductCode;
                string DisplayName = package.DisplayName;
                bool   Checked     = false;
                if (itemGroup.ContainsKey(ProductCode))
                {
                    BootstrapperPackageItem item = itemGroup[ProductCode] as BootstrapperPackageItem;
                    if (item != null && item.Install)
                    {
                        Checked = true;
                    }
                }

                tablePackages.Rows.Add(ProductCode, DisplayName, Checked);
            }

            foreach (DataRowView view in tablePackages.DefaultView)
            {
                Util.BootstrapperPackage package = new Util.BootstrapperPackage(
                    view["ProductCode"] as string,
                    view["DisplayName"] as string,
                    (bool)view["Checked"]);

                chkListBoxBootstrappers.Items.Add(package, package.Checked);
            }

            CsProject.PropertyCollection properties = config.PropertyItems;
            chkBootstrapperEnabled.Checked = properties.BootstrapperEnabled;

            switch (properties.BootstrapperComponentsLocation)
            {
            case BootstrappersLocations.Relative:
                radioComponentsLocationRelative.Checked = true;
                break;

            case BootstrappersLocations.Absolute:
                radioComponentsLocationAbsolute.Checked = true;
                break;

            default:
                radioComponentsLocationDefault.Checked = true;
                break;
            }

            cmbBootstrapperComponentsUrl.Text = properties.BootstrapperComponentsUrl;
        }
Beispiel #2
0
        void SaveSettings()
        {
            for (int i = 0; i < chkListBoxBootstrappers.Items.Count; i++)
            {
                Util.BootstrapperPackage package = chkListBoxBootstrappers.Items[i] as Util.BootstrapperPackage;
                if (package == null)
                {
                    continue;
                }

                bool isChecked = chkListBoxBootstrappers.GetItemChecked(i);

                ItemGroup itemGroup = config.ItemGroupBootstrapperPackages;

                BootstrapperPackageItem item = null;
                if (itemGroup.ContainsKey(package.ProductCode))
                {
                    item = itemGroup[package.ProductCode] as BootstrapperPackageItem;
                }
                else
                {
                    item = new BootstrapperPackageItem(package.ProductCode);
                    itemGroup.Add(item);
                }

                item.Install = isChecked;
            }

            CsProject.PropertyCollection properties = config.PropertyItems;
            properties.BootstrapperEnabled = chkBootstrapperEnabled.Checked;

            if (radioComponentsLocationRelative.Checked)
            {
                properties.BootstrapperComponentsLocation = CsProject.BootstrappersLocations.Relative;
            }
            else if (radioComponentsLocationAbsolute.Checked)
            {
                properties.BootstrapperComponentsLocation = CsProject.BootstrappersLocations.Absolute;
            }
            else
            {
                properties.BootstrapperComponentsLocation = CsProject.BootstrappersLocations.Default;
            }
            properties.BootstrapperComponentsUrl = cmbBootstrapperComponentsUrl.Text;
        }
Beispiel #3
0
        /// <summary>
        /// UI -> ProjectDocument。
        /// </summary>
        void UpdateUiToDocument(ClickOnceConfigFile config)
        {
            if (config == null)
            {
                return;
            }

            CsProject.PropertyCollection properties = config.PropertyItems;
            //常规
            config.Settings.DistributionPath = txtDistributionPath.Text;
            config.Settings.ExecuteFile      = txtExecuteFile.Text;
            config.Settings.ExecuteFileType  = chkIsCLR.Checked ? ExecuteFileTypes.CLR : ExecuteFileTypes.Win32;
            config.Settings.AssemblyInfoFile = txtAssemblyInfoFile.Text;
            //引导程序集
            properties.AssemblyName = txtAssemblyName.Text.Trim();
            properties.AssemblyOriginatorKeyFile     = txtAssemblyOriginatorKeyFile.Text;
            properties.ManifestCertificateThumbprint = txtManifestCertificateThumbprint.Text;
            properties.ManifestKeyFile = txtManifestKeyFile.Text;

            //发布选项
            properties.PublishUrl = txtPublishUrl.Text;
            properties.InstallUrl = txtInstallUrl.Text;
            properties.Install    = radioInstallEnable.Checked;

            if (chkEnableApplicationRevision.Checked)
            {                                                                    //自动更新
                properties.ApplicationVersion = string.Format("{0}.{1}.{2}.%2a", // %2a = *
                                                              txtApplicationVersionMajor.Text,
                                                              txtApplicationVersionMinor.Text,
                                                              txtApplicationVersionBuild.Text);
            }
            else
            {
                properties.ApplicationVersion = string.Format("{0}.{1}.{2}.{3}",
                                                              txtApplicationVersionMajor.Text,
                                                              txtApplicationVersionMinor.Text,
                                                              txtApplicationVersionBuild.Text,
                                                              numApplicationRevision.Value.ToString());
            }
            properties.ApplicationRevision = (int)numApplicationRevision.Value;

            //其他

            config.RefreshPublishFiles();
        }
        public static ClickOnceConfigFile NewDocument(string fileName)
        {
            try
            {
                string templatePath = Properties.Settings.Default.TemplatePath;
                ClickOnceConfigFile          document   = new ClickOnceConfigFile(Path.Combine(templatePath, "loader.csproj"));
                CsProject.PropertyCollection properties = document.PropertyItems;

                properties.ProjectGuid = Guid.NewGuid().ToString("B").ToUpper();
                document.WriteXml(fileName);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(new ClickOnceConfigFile(fileName));
        }
Beispiel #5
0
        void SaveSettings()
        {
            CsProject.PropertyCollection properties = config.PropertyItems;

            //说明
            properties.TargetCulture = cmbTargetCulture.SelectedValue as string;
            properties.PublisherName = txtPublisherName.Text;
            properties.ProductName   = txtProductName.Text;
            properties.SupportUrl    = cmbSupportUrl.Text;

            //部署
            properties.WebPage = txtWebPage.Text;
            properties.CreateWebPageOnPublish = chkCreateWebPageOnPublish.Checked;
            properties.OpenBrowserOnPublish   = chkOpenBrowserOnPublish.Checked;
            properties.MapFileExtensions      = chkMapFileExtensions.Checked;
            properties.AutorunEnabled         = chkAutorunEnabled.Checked;

            //清单
            properties.DisallowUrlActivation = chkDisallowUrlActivation.Checked;
            properties.TrustUrlParameters    = chkTrustUrlParameters.Checked;

            //文件关联
        }
Beispiel #6
0
        void LoadSettings()
        {
            CsProject.PropertyCollection properties = config.PropertyItems;

            //说明
            cmbTargetCulture.SelectedValue = properties.TargetCulture;
            txtPublisherName.Text          = properties.PublisherName;
            txtProductName.Text            = properties.ProductName;
            cmbSupportUrl.Text             = properties.SupportUrl;

            //部署
            txtWebPage.Text = properties.WebPage;
            chkCreateWebPageOnPublish.Checked = properties.CreateWebPageOnPublish;
            chkOpenBrowserOnPublish.Checked   = properties.OpenBrowserOnPublish;
            chkMapFileExtensions.Checked      = properties.MapFileExtensions;
            chkAutorunEnabled.Checked         = properties.AutorunEnabled;

            //清单
            chkDisallowUrlActivation.Checked = properties.DisallowUrlActivation;
            chkTrustUrlParameters.Checked    = properties.TrustUrlParameters;

            //文件关联
        }
Beispiel #7
0
        /// <summary>
        /// ProjectDocument -> UI。
        /// </summary>
        /// <param name="basePath"></param>
        void UpdateUiFromDocument(ClickOnceConfigFile config)
        {
            if (config == null)
            {
                tabControl1.Enabled = false;
                //常规
                txtDistributionPath.Text = "";
                txtExecuteFile.Text      = "";
                chkIsCLR.Checked         = false;
                txtAssemblyInfoFile.Text = "";
                //引导程序集
                txtAssemblyName.Text = "";
                txtAssemblyOriginatorKeyFile.Text     = "";
                txtManifestCertificateThumbprint.Text = "";
                txtManifestKeyFile.Text = "";

                //发布选项
                txtPublishUrl.Text          = "";
                txtInstallUrl.Text          = "";
                radioInstallDisable.Checked = false;
                radioInstallEnable.Checked  = true;

                txtApplicationVersionMajor.Text = "";
                txtApplicationVersionMinor.Text = "";
                txtApplicationVersionBuild.Text = "";
                numApplicationRevision.Value    = 0;

                chkEnableApplicationRevision.Checked = false;

                //其他
            }
            else
            {
                tabControl1.Enabled = true;
                string basePath = config.BasePath;

                CsProject.PropertyCollection properties = config.PropertyItems;
                //常规
                txtDistributionPath.Text = config.Settings.DistributionPath;
                txtExecuteFile.Text      = config.Settings.ExecuteFile;
                chkIsCLR.Checked         = (config.Settings.ExecuteFileType == ExecuteFileTypes.CLR);
                txtAssemblyInfoFile.Text = config.Settings.AssemblyInfoFile;

                //引导程序集
                txtAssemblyName.Text = properties.AssemblyName;
                txtAssemblyOriginatorKeyFile.Text     = string.IsNullOrEmpty(properties.AssemblyOriginatorKeyFile) ? "" : Sense.Utils.IO.Path.GetAbsolutePath(basePath, properties.AssemblyOriginatorKeyFile);
                txtManifestCertificateThumbprint.Text = properties.ManifestCertificateThumbprint;
                txtManifestKeyFile.Text = string.IsNullOrEmpty(properties.ManifestKeyFile) ? "" : Sense.Utils.IO.Path.GetAbsolutePath(basePath, properties.ManifestKeyFile);

                //发布选项
                txtPublishUrl.Text          = properties.PublishUrl;
                txtInstallUrl.Text          = properties.InstallUrl;
                radioInstallDisable.Checked = !properties.Install;
                radioInstallEnable.Checked  = properties.Install;

                string[] applicationVersionParts = properties.ApplicationVersion.Split('.');
                if (applicationVersionParts.Length >= 4)
                {
                    txtApplicationVersionMajor.Text = applicationVersionParts[0];
                    txtApplicationVersionMinor.Text = applicationVersionParts[1];
                    txtApplicationVersionBuild.Text = applicationVersionParts[2];
                    numApplicationRevision.Value    = properties.ApplicationRevision;

                    chkEnableApplicationRevision.Checked = (applicationVersionParts[3].Trim() == "*" ||
                                                            applicationVersionParts[3].Trim().ToLower() == "%2a");
                }

                //其他
            }
        }