1、IDS_CREATE_PROCESS_FAILURE= 下列命令行的CreateProcess 操作失败 : %s 。IDS_INSUFFICIENT_PRIVILEGES= 运行 %s 安装程序要 求具有本地系统管理员的权限。安装程序现在退出。IDS_DIALOG_TEXT= 单击”确定”开始安装%1 。单击”取消” 退出安装。IDS_ERROR_CAPTION=%s 安装错误IDS_VERSION_DETECT_FAILED=%1 的版本检测失败。请确保安装程序存在于指定位置。 %n%n 返回消息 : %2IDS_MSI_NOT_FOUND= 无法定位产品安装程序 %s。安装程序现在退出。
2、IDS_REBOOT_QUERY= 安装完成。现在重启吗 ?IDS_SETUP_SUCCEEDED= 安装成功。IDS_INVALID_LANGID_CAPTION= 无效的语言包代码IDS_FX_NOT_FOUND= 无法定位 .NET framework exe 文 件%s。IDS_INVALID_LANGID_MESSAGE= 语言包代码 %s 无效。 跳过IDS_LANGPACK_NOT_FOUND= 无法定位语言包 %s 。安 装程序现在退出。IDS_MDAC_NOT_FOUND= 无法定位 MDAC exe 文 件%s。IDS_FILE_NOT_FOUND= 无法定位 1安装程序现
3、在退出。Settings.ini 文件内容如下:BootstrapMsiPath=ItemSoft.msi .msi 安装文件ProductName=中国亿万电器成套报价系统 -安装产品名称MdacVersion=2.71BootstrapFx=trueFxInstallerPath=LanguageID=2052BootstrapLangPack=trueLangPackInstallerPath=BootstrapMdac=trueMdacInstallerPath=这种方法能够很简单的将 .Net Framwork 与你的应用程序一 起打包到安装程序中,并且自动检测客机上的是否安装 过
4、.Net Framework, 然后运行安装。 相信大家一定能够喜欢这 个插件。.Net 程序打包安装与卸载制作 怎样在打包程序中自动 安装 SQL Server 数据库 (三 )? 怎样在打包程序中自动安装 SQL Server 数据库? 1、创建安装项目“ Setup1 ”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和 部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称” 框中键入 “ setup1 ”。单击“确定”关闭对话框。 项目被添加到解决方案资源管理器中,并且文件系统编辑器 打开。在“属性”窗口
5、中,选择 ProductName 属性,并键入”亿万电 器成套报价系统”。2、在安装项目中创建安装程序类( install.cs )。 添加创建数据库( InstallDatabase.txt )、删除数据库 ( DropDatabase.txt )、初始化数据基本数据(InitializeData.txt) 脚本文件,将属性“生成操作”设为“嵌入的 资源”。代码如下:using System;using System.Collections;using System.ComponentModel;using System.Configuration.Install;using System.
6、Data;using System.Data.SqlClient;using System.IO;using System.Reflection;using System.Text.RegularExpressions;using System.Windows.Forms;using System.Text;using Microsoft.Win32;namespace install/ Installer 的摘要说明。RunInstaller(true)public class Installer : System.Configuration.Install.Installer / 必需的设
7、计器变量。string conStr= ” packet size=4096;integratedsecurity=SSPI; ”+“data source=/ ” (local)/ ” ;persist security info=False;“ initial catalog=master;connect timeout=300 ;RijndaelCryptography rijndael = newRijndaelCryptography();private System.ComponentModel.Container components =null;public Installer
8、()/ 该调用是设计器所必需的。InitializeComponent();/ TODO: 在 InitializeComponent 调用后添加任何初始化/ 清理所有正在使用的资源。protected override void Dispose( bool disposing )if( disposing )if(components != null)components.Dispose(); base.Dispose( disposing );#region 组件设计器生成的代码/ 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。private void Initiali
9、zeComponent()components = new System.ComponentModel.Container(); #endregion#region 重载自定义安装方法protected override void OnBeforeInstall(IDictionary savedState) base.OnBeforeInstall (savedState);public override void Install(IDictionary stateSaver) base.Install (stateSaver); string databaseServer =Context
10、.Parameters ” server ” .ToString();string userName= Context.Parameters” user ” .ToString();string userPass =Context.Parameters” pwd” .ToString();string targetdir =this.Context.Param eters ” targetdir” .ToString();conStr =GetLogin(databaseServer,userName,userPass, ” master ” );SqlConnection sqlCon =
11、new SqlConnection();trysqlCon.ConnectionString = conStr;sqlCon.Open();rijndael.GenKey();rijndael.Encrypt(conStr);stateSaver.Add( ”key ” ,rijndael.Key);stateSaver.Add( ”IV ” ,rijndael.IV);stateSaver.Add( ” conStr ” ,rijndael.Encrypted);ExecuteSql(sqlCon, ” InstallDatabase.txt ”);ExecuteSql(sqlCon, ”
12、InitializeData.txt ”);if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close();catch(SqlException)MessageBox.Show( ”安装失败 !/n 数据库配置有误 ,请正确配 置信息 ! ”, ”错误” ,MessageBoxButtons.OK,MessageBoxIcon.Error);=ConnectionState.Closed) sqlCon.Close();this.Rollback(stateSaver);protected override void OnAfterInstall(
13、IDictionarysavedState)base.OnAfterInstall(savedState);public override void Rollback(IDictionary savedState)base.Rollback (savedState);public override void Uninstall(IDictionary savedState)base.Uninstall (savedState);if(savedState.Contains( ” conStr ”)this.Context.Parameters ” targetdir ” .ToString()
14、;RijndaelCryptography rijndael = new RijndaelCryptography();conStr ” );rijndael.Key = (byte)savedState ”key ”; rijndael.IV = (byte)savedState ”IV ”;conStr = rijndael.Decrypt(byte)savedState ” SqlConnection sqlCon = new SqlConnection(conStr); ExecuteDrop(sqlCon);#region 数据操作方法/从资源文件获取中数据执行脚本private s
15、tatic string GetScript(string name)Assembly asm = Assembly.GetExecutingAssembly();Stream str = asm.GetManifestResourceStream(asm.GetName().Name+ “ . ” + name);StreamReader reader = newStreamReader(str,System.Text.Encoding.Default);System.Text.StringBuilder output = new System.Text.StringBuilder();t
16、I “ ”string line = “”;while(line = reader.ReadLine()!=null)output.App end(line + “ /n ”);return output.ToString();/获取数据库登录连接字符串private static string GetLogin(string databaseServer,string userName,string userPass,string database) return “ server= ” + databaseServer +“ ;database= ” +database+ ” ;User
17、ID= ” + userName + “ ;Password= ” + userPass + ” ;connect timeout=300;/执行数据库脚本方法 private static void ExecuteSql(SqlConnection sqlCon,string sqlfile)string SqlLine;Regex regex = newRegex( ” AGO? ,RegexOptionsgnoreCase |RegexOptions.Multiline);string txtSQL = GetScript(sqlfile);SqlLine = regex.Split(t
18、xtSQL); sqlCon.Open();SqlCommand cmd = sqlCon.CreateCommand(); cmd.Connection = sqlCon;foreach(string line in SqlLine)if(line.Length>0)cmd.CommandText = line;cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery();catch(SqlException ex)/rollbackstring ss = ex.Message;ExecuteDrop(sqlCon);break;/
19、删除数据库private static void ExecuteDrop(SqlConnection sqlCon) if(sqlCon.State!cmd.CommandText = GetScript( ” DropDatabase.txt ” ); cmd.CommandType = CommandType.Text;cmd.ExecuteNonQuery();sqlCon.Close();单击“生成”菜单下“生成解决方案”,生成nstall.dll安装类文 件。3、将“主程序”项目的输出添加到部署项目中 在“文件系统编辑器”中,选择“应用程序文件夹”,单击右键指 向“添加”,添加“项目
20、输出”。在“添加项目输出组”对话框中,选择“项目”下拉表框中选择你 的主安装程序类,如上面的“ install ”。从列表框中选择“主输出”组,然后单击“确定”关闭。4、 创建自定义安装对话框 在解决方案资源管理器中选择安装项目“ Setup1 ”项目在,“视 图”菜单上指向“编辑器”,然后选择“用户界面”。在用户界面编辑器具中,选择“安装”下的“启动”节点。在“操 作”菜单上,选择“添加对话框”。在“添加对话框”中选择“文本框(A) ”对话框,然后单击“确定” 关闭对话框。在“操作”菜单上,选择“上移”,重复此步骤,移到“安装文件 夹”上。在“文本框(A)”上单击“属性窗口”,设置如下图所示
21、:5、 建自定义操作在解决方案资源管理器中选择安装项目“ Setup1 ”项目在,“视 图”菜单上指向“编辑器”,然后选择“自定义操作”。 在“自定义操作编辑器”中选择“安装”节点。单击右键“添加自 定义操作”,在选择项目中的项中选择“应用程序文件夹”,选 择“主输出来自 install( 活动 ) ”。在“属性窗口”中选择“ CustomActionData ”属性并键入 “/server=EDITA1 /user=EDITA2 /pwd=EDITA3 /targetdir= ” TARGETDIR/ ”。附 :/targetdir= ” TARGETDIR/ ”是安装后的目标路径为,了在i
22、nstall 类中获得安装后的路径,我们设置此参数。 单击“生成”菜单下的“生成解决方案”,编译安装项目。.Net 程序打包安装与卸载制作怎样将 MSDE Sp3 打包进.Net安装项目中?(四)怎样将 MSDE Sp3 打包进 .Net 安装项目中?1、创建安装项目“ Setup1 ”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。2、下载 MSDE Sp3 安装程序与 MSI 安装文件修改器( Orca ) 工具。3、选择“文件系统编辑器”,在“视图“菜单上指向“添加”,然后选择“合并模块” (Merge Moudle),在添加模块中,找到MSDE sp3安装文件所在目录
23、, 将MSM和MSM/1033 下的 所有文件,添加进来。在安装项目 Setupl的属性(Properties )中的“ Search Path ” 添加 MSM 和 MSM/1033 目录。单击“生成菜单下的“生成解决方案”,编译 Setup1 安装项目 工程。用Orca MSI安装文件修改器打开生成的安装包 (Setup1.msi )文件,在左列的表栏中选择“ InstallExecuteSequence ”表,修改下面的属性值:GetSqlStates.XXXXXX 103 改成 421RemoveExistingProducts 值改成 1800InstallInitialize 值改
24、成 1799在 InstallUISequence选择“ InstallUISequence ”表,修改下面的值:选择“ Property ”表,添加以下三个属性:SqlInstanceName : MSDEDH 实例服务名SqlSecurityMode :SQL (不加这行确实也行,就是没办法用 SQL 模式登录)SqlSaPwd :sa 的密码连接测试:单击修改过的 Setup1.msi 安装文件,确认是否能够安装; osql -S 机器名 /MSDEDH 实例服务名 -U sa -P sa 密码 能够进去 &OK !打包成功!.Net 程序打包安装与卸载制作 怎样将 MDAC 打包(五)在“解决方案资源管理器”选择 Setup1 安装项目工程,选择“视 图”菜单,指向“启动条件”,打开“启动条件”管理器。 在”启动条件”管理器中,右键点击”目标计算机上的要求”,在 弹出的的菜单中选择”添加注册表启动条件”。你会发现在”搜 索目标计算机”中多了一项”搜索RegistryEntryl 在”启动条 件”中多了一项” Conditionl 。选择”搜索RegistryEntryl 在,属性”对话框中填写如下内容:Property :MDACSEARCHRegKey :
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1