private void done_Click(object sender, EventArgs e) { //查错 if (titleValue.Text.Equals("")) { MessageBox.Show("请填写软件名!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (dirValue.Text.Equals("")) { MessageBox.Show("请填写待打包文件夹!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Directory.Exists(dirValue.Text)) { MessageBox.Show("打包文件夹不存在!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (generateShortcut.Checked && shortcutList.Items.Count == 0) { MessageBox.Show("请指定要创建快捷方式的文件或者取消勾选创建快捷方式!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (installPathValue.Text.Equals("")) { MessageBox.Show("请填写默认安装路径!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (publisherValue.Text.Equals("")) { MessageBox.Show("请填写发布者!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (versionValue1.Text.Equals("") || versionValue2.Text.Equals("") || versionValue3.Text.Equals("") || versionValue4.Text.Equals("")) { MessageBox.Show("请填写版本号并填写完整!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (versionValue1.Text.Contains(".") || versionValue2.Text.Contains(".") || versionValue3.Text.Contains(".") || versionValue4.Text.Contains(".")) { MessageBox.Show("每个版本号字段中不能包含点(.)!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //写入配置文件 Configure cfg = new Configure(); cfg.Title = titleValue.Text; cfg.PackedDir = dirValue.Text; cfg.MainEXE = mainExeValue.Text; cfg.GenerateShortcut = generateShortcut.Checked; List <string> shortcuts = new List <string>(); foreach (string item in shortcutList.Items) { shortcuts.Add(item); } cfg.ShortcutList = shortcuts; cfg.InstallPath = installPathValue.Text; cfg.AddBootOption = addBootOption.Checked; cfg.RunAfterSetup = runafterValue.Text; cfg.RunBeforeUnSetup = runBeforeUnValue.Text; cfg.OpenAfterSetup = openAfterSetup.Checked; cfg.GenerateUninstall = genUnsetup.Checked; cfg.ShowInstallProcess = showInstallWindow.Checked; cfg.Publisher = publisherValue.Text; cfg.Version = versionValue1.Text + "." + versionValue2.Text + "." + versionValue3.Text + "." + versionValue4.Text; string currentDir = AppDomain.CurrentDomain.BaseDirectory; if (!Directory.Exists(currentDir + "Resources")) { Directory.CreateDirectory(currentDir + "Resources"); } string cfgJson = JsonConvert.SerializeObject(cfg); File.WriteAllText(currentDir + @"Resources\cfg.ezcfg", cfgJson); //写入安装包文件程序集信息 string assemblyInfoFile = currentDir + "AssemblyInfo.cs"; if (File.Exists(assemblyInfoFile)) { TextFileWriter.ClearAll(assemblyInfoFile); } else { File.Create(assemblyInfoFile).Close(); } List <string> csContent = new List <string>(); csContent.Add("using System.Reflection;"); csContent.Add("using System.Runtime.InteropServices;"); csContent.Add("[assembly: AssemblyTitle(\"" + cfg.Title + "\")]"); csContent.Add("[assembly: AssemblyProduct(\"" + cfg.Title + " 安装向导" + "\")]"); csContent.Add("[assembly: AssemblyDescription(\"" + cfg.Title + "的安装程序。" + "\")]"); csContent.Add("[assembly: AssemblyCompany(\"" + cfg.Publisher + "\")]"); csContent.Add("[assembly: AssemblyCopyright(\"Copyright © " + DateTime.Now.ToString("yyyy") + "\")]"); csContent.Add("[assembly: AssemblyVersion(\"" + cfg.Version + "\")]"); csContent.Add("[assembly: AssemblyFileVersion(\"" + cfg.Version + "\")]"); foreach (string info in csContent) { TextFileWriter.AppendText(assemblyInfoFile, info, Encoding.UTF8); } string uninstallCode; if (cfg.GenerateUninstall) { uninstallCode = "1"; } else { uninstallCode = "0"; } Program.code = cfg.PackedDir + "|" + uninstallCode; Close(); }