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; }
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; }
/// <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)); }
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; //文件关联 }
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; //文件关联 }
/// <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"); } //其他 } }