首页 很不错的制作安装程序详解

很不错的制作安装程序详解

举报
开通vip

很不错的制作安装程序详解安装程序的制作、 安装程序的制作、.Net框架、数据库打包、卸载功能实现 先新建一个安装部署项目: 然后在应用程序文件夹将所需打包的文件添加进来: xBe2NXVw.bmp (399.32 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:11 并且把.net framework也包含进去,可以到网上去下个。 xDI5uQVc.bmp (84.27 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:15 如果希望自己做的安装程序的exe...

很不错的制作安装程序详解
安装程序的制作、 安装程序的制作、.Net框架、数据库打包、卸载功能实现 先新建一个安装部署项目: 然后在应用程序文件夹将所需打包的文件添加进来: xBe2NXVw.bmp (399.32 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:11 并且把.net framework也包含进去,可以到网上去下个。 xDI5uQVc.bmp (84.27 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:15 如果希望自己做的安装程序的exe文件变漂亮点,可以把图标文件也一并打包进去 Plk8lKlA.bmp (227.37 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:16 然后可以把自己的安装程序的快捷方式放到用户桌面和开始菜单里面: adz92WZq.bmp (142.26 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:18 下一步: CfKLd66R.bmp (82.93 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:18 把快捷方式剪切到用户桌面文件夹: yZhLQnEd.bmp (134.93 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:21 同时可以在用户的程序文件夹下新建一个文件夹,自己随便命名的,并把快捷方式也剪切进去: 5aFgzTgT.bmp (192.03 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:23 然后设置快捷方式的图标以便你的安装程序变漂亮: 选中快捷方式,选属性窗口,(注意:不是右键->属性) 里面有icon属性,然后选择先前放入的图标: 6SoXjCdn.bmp (689.87 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:27 p8vK2mT4.bmp (539.52 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:28 接着就是如何把.net framework打包进去了: 如图: 2tNORZT4.bmp (318.52 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:29 选择项目->属性(右键)->系统必备: FgBfMTe6.bmp (318.52 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:31 5LyOu3vU.bmp (761.57 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:32 一般默认的都是如图所示: gwEkbnDU.bmp (448.22 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:33 把”从与我的应用程序相同的位置下载系统必备组件“选上: 1LSoQCja.bmp (882.74 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:35 然后就是怎么添加卸载程序了: 先生成项目解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,然后添加一个新的Windows 项目,把自动生成的form.cs删除,在program.cs下先引用:System.Diagnostics; 再按照要求写下代码,如图所示: XuOAHyXr.bmp (1.39 MB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:40 AXDism80.bmp (311.72 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:41 电击安装程序的项目,查看属性,(注意:不是右键)找到ProductCode属性,把那段code复制下来,然后在program.cs把原来的[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } 覆盖成: [STAThread] static void Main() { if (System.Environment.OSVersion.ToString().IndexOf("NT 5") >= 0) { Process.Start("msiexec", "/uninstall {54ABAE8B-115E-4FEF-B6CA-897889737C9F}"); //BDA4996C-6895-4F4C-839C-9AFE22FB8545就是第1部的ProductCode } Application.Exit(); } /uninstall后面的就是前面所说的那个code了,包括括号的。 CVt3gITk.bmp (214.74 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:45 Nm24P2Bv.bmp (341.78 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:45 然后再生成解决方案,再在应用程序文件夹右键添加项目输出,把卸载程序生成的.exe文件添加进去,这样就好了,安装程序就做完了,但是我们在安装的时候往往在program文件夹下要生成两级目录安装,这个要按如下设置: 点击应用程序文件夹,查看属性,(不是右键的,vs右边的属性窗口里的),找到defaultlocation属性,你可以把里面的字符串中 manufacture字符删除,这样在安装的时候就不会出现两级目录的情况了。 AiXsOMeN.bmp (240.29 KB) [原创]安装程序的制作、.Net框架打包、卸载功能实现 2006-11-1 12:45 终于完了 将数据库打包进安装程序里可以看这个帖子的7楼和8楼: http://bbs.bc-cn.net/viewthread.php?tid=101205&extra=&page=100# 如何在安装包中自动为客户创建数据库 步骤: 1、添加一个新项目->选择类库 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 ->命名为DBCustomAction 2、单击项目右键->添加新项->选择安装程序类(命名为DBCustomAction.cs) 3、在服务器资源管理器中添加->连接到数据库->指定用户密码(选择允许保存密码)->数据库选择master 4、切换到DBCustomAction.cs的视图状态->将服务器资源管理器数据库连接中的master.dbo拖动到designer中 5、添加一个新项sql.txt(注意要使用小写),输入下列sql代码: CREATE TABLE [dbo].[MK_Employees] ( [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [Rsvp] [int] NULL, [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]; ALTER TABLE [dbo].[MK_Employees] WITH NOCHECK ADD CONSTRAINT [PK_MK_Employees] PRIMARY KEY CLUSTERED ( [Name] ) ON [PRIMARY]; (PS:也可以直接用SqlServer导出) 6、在sql.txt的右键属性中 -> 生成操作 -> 嵌入的资源 7、将DBCustomAction.cs切换到代码视图,添加下列代码: private string GetSql(string Name) { try { Assembly Asm = Assembly.GetExecutingAssembly(); Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name); StreamReader reader = new StreamReader(strm); return reader.ReadToEnd(); } catch (Exception ex) { Console.Write("In GetSql:"+ex.Message); throw ex; } } private void ExecuteSql(string DataBaseName,string Sql) { System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConnection1); Command.Connection.Open(); Command.Connection.ChangeDatabase(DataBaseName); try { Command.ExecuteNonQuery(); } finally { Command.Connection.Close(); } } protected void AddDBTable(string strDBName) { try { ExecuteSql("master","CREATE DATABASE "+ strDBName); ExecuteSql(strDBName,GetSql("sql.txt")); } catch(Exception ex) { Console.Write("In exception handler :"+ex.Message); } } public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver); AddDBTable(this.Context.Parameters["dbname"]); } 8、再添加一个新项目,(选择添加到解决方案中)->项目类型为安装项目->命名为DBCustomAction Installer 9、选择应用程序文件夹->添加->项目输出->主输出 10、在方案资源管理器中->右键安装项目(DBCustomAction Installer)->视图->用户界面 11、选中启动结点->添加对话框->文本A 12、选动文本框A->右键->上移一直到最顶端 13、选择文本框A属性->修改BannerText,(Specify Database Name) 14、修改BodyText(This dialog allows you to specify the name of the database to be created on the database server. ) 15、修改EditLabel1(Name of DB),修改Edit1Porperty(CUSTOMTEXTA1),将其他Edit2,3,4的Edit(2,3,4)Visible属性设为false; 16、在方案资源管理器中->右键安装项目(DBCustomAction Installer)->视图->自定义操作 17、选中安装结点->添加->双击应用程序文件夹->主输出来自DBCustomAction(活动)->右键属性->CustomActiveData属性修改为/dbname=[CUSTOMTEXTA1] 18、编译生成,OK! Net程序打包安装与卸载制作 ——问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 描述(一) .Net程序打包安装与卸载制作 ——问题描述(一)        项目已将近完工,怎样将你的程序打包,包装成一个完美的安装程序呢?今天我将我个人使用.Net制作打包程序的经验分享给大家,不足之处还希望大家能够给予指正。面对对.Net平台开发出来的程序,它的运行对系统环境要求有点高,需要.Net Framework的支持,所以首先面对的问题是怎样将.Net Framework1.1或2.0安装在一台没有以前没有装过的机子上。以下是我在打包过程中需要解决的问题: 一.怎样将.NET程序部署到没有安装_NET Framwork的机器上? 二.怎样在打包程序中自动安装SQL Server数据库? 三.怎样将MSDE Sp3打包进.Net安装项目中? 四.怎样将MDAC打包进.Net安装项目中? 五.怎样制作.Net卸载程序?  六.怎样创建各种快捷方式? Net程序打包安装与卸载制作 ——怎样将.Net程序部署到没有安装.Net Framwork的机器上?(二) 怎样将.Net程序部署到没有安装.Net Framwork的机器上?   部署在.Net 平台下开发的应用程序,需要安装安装对应版本的.Net Framwork,而Vsual Studio 2003并没有提供一起打包的功能,所以这一点估计大多开发者都感觉不是太好,那如何将.Net Framework安装部署到客户机上呢?  其实微软提供了我们一个安装引导插件(Microsoft Visual Studio .NET 2003 引导程序插件),可以帮助我们在打包时,它会自动将.Net Framework打包放入你的安装程序中,完成了我们想要的功能。  建立安装程序项目,将自己需要打包的程序加入进去,编译过后,你会注意到在生成的安装目录下,你将会注意到多了几个文件(dotnetfx.exe、Config.ini、langpack.exe、Settings.ini),详细介绍如下: Config.ini -- 安装配置文件 dotnetfx.exe -- .Net Framework组件 langpack.exe -- 语言包 Settings -- 设置文件 ItemSoft.msi -- .msi安装文件 Setup.exe -- 主安装程序 Config的文件内容如下: [config.ini] IDS_NOT_SINGLE_INSTANCE=已有另一版本的安装程序正在运行。 该应用程序一次只能运行一个版本。 IDS_DIALOG_CAPTION=%s 安装 IDS_SINGLE_INSTANCE_FAIL=CreateMutex 无法对单个的实例检查分配句柄。 IDS_SETUP_FAILURE=%s 安装失败。如果问题继续存在,请与产品支持人员联系。 IDS_DEFAULT_PRODUCTNAME=应用程序 IDS_SETTINGS_INIT_FAILURE=安装设置文件'%s'在解析时出错,或者无法定位该文件。 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返回消息: %2 IDS_MSI_NOT_FOUND=无法定位产品安装程序'%s'。安装程序现在退出。 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'。安装程序现在退出。 Settings.ini文件内容如下: [Bootstrap] MsiPath=ItemSoft.msi -- .msi安装文件 ProductName=中国亿万电器成套报价系统 --安装产品名称 MdacVersion=2.71 BootstrapFx=true FxInstallerPath= LanguageID=2052 BootstrapLangPack=true LangPackInstallerPath= BootstrapMdac=true MdacInstallerPath= 这种方法能够很简单的将.Net Framwork与你的应用程序一起打包到安装程序中,并且自动检测客机上的是否安装过.Net Framework,然后运行安装。相信大家一定能够喜欢这个插件。 .Net程序打包安装与卸载制作 ——怎样在打包程序中自动安装SQL Server数据库(三)?   怎样在打包程序中自动安装SQL Server数据库? 1、创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入 “setup1”。 单击“确定”关闭对话框。 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。 在“属性”窗口中,选择 ProductName 属性,并键入”亿万电器成套报价系统”。   2、在安装项目中创建安装程序类(install.cs)。 添加创建数据库(InstallDatabase.txt)、删除数据库(DropDatabase.txt)、初始化数据基本数据(InitializeData.txt)脚本文件,将属性“生成操作”设为“嵌入的资源”。代码如下: using System; using System.Collections; using System.ComponentModel; using System.Configuration.Install; using System.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 { /// /// 必需的设计器变量。 /// string conStr="packet size=4096;integrated security=SSPI;"+ "data source=\"(local)\";persist security info=False;"+ "initial catalog=master;connect timeout=300"; RijndaelCryptography rijndael = new RijndaelCryptography(); private System.ComponentModel.Container components = null;   public Installer() { // 该调用是设计器所必需的。 InitializeComponent();   // TODO: 在 InitializeComponent 调用后添加任何初始化 }   /// /// 清理所有正在使用的资源。 /// protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }   #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { 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.Parameters["server"].ToString(); string userName = Context.Parameters["user"].ToString(); string userPass = Context.Parameters["pwd"].ToString(); string targetdir = this.Context.Parameters["targetdir"].ToString(); conStr = GetLogin(databaseServer,userName,userPass,"master"); SqlConnection sqlCon = new SqlConnection();   try { sqlCon.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,"InitializeData.txt"); if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close(); } catch(SqlException) { MessageBox.Show("安装失败!\n数据库配置有误,请正确配置信息!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error); if(sqlCon.State!=ConnectionState.Closed) sqlCon.Close(); this.Rollback(stateSaver); }   } protected override void OnAfterInstall(IDictionary savedState) { 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")) { string targetdir = this.Context.Parameters["targetdir"].ToString(); RijndaelCryptography rijndael = new RijndaelCryptography(); rijndael.Key = (byte[])savedState["key"]; rijndael.IV = (byte[])savedState["IV"]; conStr = rijndael.Decrypt((byte[])savedState["conStr"]); SqlConnection sqlCon = new SqlConnection(conStr); ExecuteDrop(sqlCon); } } #endregion   #region 数据操作方法 //从资源文件获取中数据执行脚本 private static string GetScript(string name) { Assembly asm = Assembly.GetExecutingAssembly(); Stream str = asm.GetManifestResourceStream(asm.GetName().Name+ "." + name); StreamReader reader = new StreamReader(str,System.Text.Encoding.Default); System.Text.StringBuilder output = new System.Text.StringBuilder(); string line = ""; while((line = reader.ReadLine())!=null) { output.Append(line + "\n"); } return output.ToString();   } //获取数据库登录连接字符串 private static string GetLogin(string databaseServer,string userName,string userPass,string database) { return "server=" + databaseServer + ";database="+database+";User ID=" + userName + ";Password=" + userPass +";connect timeout=300;"; } //执行数据库脚本方法 private static void ExecuteSql(SqlConnection sqlCon,string sqlfile) { string[] SqlLine; Regex regex = new Regex("^GO",RegexOptions.IgnoreCase | RegexOptions.Multiline); string txtSQL = GetScript(sqlfile); SqlLine = regex.Split(txtSQL);   if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close(); 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; try { cmd.ExecuteNonQuery(); } catch(SqlException ex) { //rollback string ss = ex.Message; ExecuteDrop(sqlCon); break; } } } } //删除数据库 private static void ExecuteDrop(SqlConnection sqlCon) { if(sqlCon.State!=ConnectionState.Closed)sqlCon.Close(); sqlCon.Open(); SqlCommand cmd = sqlCon.CreateCommand(); cmd.Connection = sqlCon; cmd.CommandText = GetScript("DropDatabase.txt"); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); sqlCon.Close(); } #endregion } 单击“生成”菜单下“生成解决方案”,生成install.dll安装类文件。 3、将“主程序”项目的输出添加到部署项目中 在“文件系统编辑器”中,选择“应用程序文件夹”,单击右键指向“添加”,添加“项目输出”。 在“添加项目输出组”对话框中,选择“项目”下拉表框中选择你的主安装程序类,如上面的“install”。 从列表框中选择“主输出”组,然后单击“确定”关闭。 4、创建自定义安装对话框 在解决方案资源管理器中选择安装项目“Setup1”项目,在“视图”菜单上指向“编辑器”,然后选择“用户界面”。 在用户界面编辑器具中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。 在“添加对话框”中选择“文本框(A)”对话框,然后单击“确定”关闭对话框。 在“操作”菜单上,选择“上移”,重复此步骤,移到“安装文件夹”上。 在“文本框(A)”上单击“属性窗口”,设置如下图所示: 5、建自定义操作 在解决方案资源管理器中选择安装项目“Setup1”项目,在“视图”菜单上指向“编辑器”,然后选择“自定义操作”。 在“自定义操作编辑器”中选择“安装”节点。单击右键“添加自定义操作”,在选择项目中的项中选择“应用程序文件夹”,选择“主输出来自install(活动)”。 在“属性窗口”中选择“CustomActionData”属性并键入“/server=[EDITA1] /user=[EDITA2] /pwd=[EDITA3] /targetdir="[TARGETDIR]\"”。   附:/targetdir="[TARGETDIR]\"是安装后的目标路径,为了在install类中获得安装后的路径,我们设置此参数。 单击“生成”菜单下的“生成解决方案”,编译安装项目。 .Net程序打包安装与卸载制作——怎样将MSDE Sp3打包进.Net安装项目中?(四)   怎样将MSDE Sp3打包进.Net安装项目中? 1、创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入 “setup1”。 单击“确定”关闭对话框。 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。 在“属性”窗口中,选择 ProductName 属性,并键入”亿万电器成套报价系统”。 2、下载MSDE Sp3 安装程序与MSI安装文件修改器(Orca)工具。 3、选择“文件系统编辑器”,在“视图“菜单上指向“添加”,然后选择“合并模块…”(Merge Moudle),在添加模块中,找到MSDE sp3安装文件所在目录,将MSM和MSM\1033下的所有文件,添加进来。 在安装项目Setup1的属性(Properties)中的“Search Path”,添加MSM和MSM\1033目录。 单击“生成菜单下的“生成解决方案”,编译Setup1安装项目工程。 用Orca MSI安装文件修改器打开生成的安装包(Setup1.msi)文件,在左列的表栏中 选择“InstallExecuteSequence”表,修改下面的属性值: GetSqlStates.XXXXXX 103改成421 RemoveExistingProducts值改成1800 InstallInitialize值改成1799 在InstallUISequence 选择“InstallUISequence”表,修改下面的值: GetSqlStates.XXXXXX 103改成421 选择“Property”表,添加以下三个属性: SqlInstanceName:MSDEDH实例服务名 SqlSecurityMode:SQL(不加这行确实也行,就是没办法用SQL模式登录) SqlSaPwd:sa的密码   连接测试: 单击修改过的Setup1.msi安装文件,确认是否能够安装; osql -S 机器名\MSDEDH实例服务名 -U sa -P sa密码 能够进去——>OK!打包成功! .Net程序打包安装与卸载制作 ——怎样将MDAC打包进.Net安装项目中?(五)   在“解决方案资源管理器”选择Setup1安装项目工程,选择“视图”菜单,指向“启动条件”,打开“启动条件”管理器。 在"启动条件"管理器中,右键点击"目标计算机上的要求",在弹出的的菜单中选择"添加注册表启动条件"。你会发现在"搜索目标计算机"中多了一项"搜索 RegistryEntry1",在"启动条件"中多了一项"Condition1"。 选择"搜索 RegistryEntry1",在"属性"对话框中填写如下内容: Property:MDACSEARCH RegKey:Software\Microsoft\DataAccess Root:vsdrrHKLM Value:FullInstallVer 选择"Condition1" ,在"属性"对话框中填写如下内容: Condition:MDACSEARCH>="2.6" 进行这一步是因为在安装.NET框架的时候需要MDAC。 .Net程序打包安装与卸载制作 ——怎样制作.Net卸载程序?(六)   方法一: 在打包项目中添加文件msiexec.exe(一般在c:\windows\system32(系统目录中)找到)。 在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninst”. 更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。 方法二: 先生成安装包,记下ProudctCode(选择解决方案资源管理根目录如Setup1,再查看属性标签,不是右键属性),下面用到 用Vs.Net 建立一个新的控制台程序uninst.exe文件。 代码如下: using System;   namespace uninst { /// /// Class1 的摘要说明。 /// class UnInstall { /// /// 应用程序的主入口点。 /// [STAThread] static void Main(string[] args) { string sysroot = System.Environment.SystemDirectory; System.Diagnostics.Process.Start(sysroot + "\\msiexec.exe", "/x {850FED90-20D0-4EBA-BEDB-3D9DBA25F6EC} /qr"); } } } 编译过后,将生成的uninst.exe文件添加到安装包中,重新生成安装项目 Net程序打包安装与卸载制作 ——怎样创建网页快捷方式(“开始与程序”菜单中)?(七) 如果你想在你的安装程序制作,在开始菜单中添加网页快捷方式,如果按照一般添加文件的方式添加时,你会发现添加不进去,怎么办呢?方法很简单,解决方法如下:     将要添加的网页快捷方式选中,按住鼠标不放,将其拖入你的.net安装程序中的用户的“程序”菜单或用户的“开始”菜单即可,这样你的网页快捷方式就可以像创建其它文件一样的被创建在windows的开始菜单与程序菜单中了!呵~~ 为.Net安装程序的设置一个*号密码框(八) Tools The only tool you need is ORCA. ORCA is a Microsoft utility for modifying and validating Windows Installer packages. It is a database tool created for setup authors and administrators who work with the Windows Installer Service. This utility is a part of the Windows Installer SDK download along with other MSI related tools. You can use ORCA to open and modify MSI packages. To download and install ORCA, follow these steps: 1.​ Visit the SDK Platform Site page to download the Windows Installer SDK. The link to Windows Installer SDK should be on the left hand side frame on the above site. 2.​ Click on that link to go to the next page to download Windows Installer SDK, which includes ORCA. 3.​ After downloading and installing Windows Installer SDK, go to \Program Files\Microsoft SDK\Bin folder on the machine to look for Orca.msi. 4.​ Run Orca.msi by double clicking on it, which is the setup to install ORCA on your machine. 5.​ After installing ORCA on your machine, you will be able to right click on any MSI package and open it in ORCA. Using the code The first thing to do, is generate our VS.NET setup project and identify our future password textbox. You can see Edit2Property in our example that is EDITA2. Now, we start to modify the MSI to enable our password text changing attributes for our textbox EDITA2. First of all, we’ve to start ORCA and open the MSI file generated by VS.NET, and go to ‘Control’ table. Normally, all textboxes are called CustomTextA, and we’ve to identify our textbox by Property column. In our case, we can see our row, has ‘7’ as attributes. Let’s go to see what means this ‘7’. The attributes are set in binary format, so ‘7’ is 111. 100 + 10 + 1 and this is 4 + 2 + 1 in decimal format. Now, we can go to control attributes table here and check what attributes are 4,2,1. We can see that our textbox has the following properties: Enabled, Sunken and Visible. Now, check that there’s an advance properties table for textboxes, and there’s a Password property with value 2097152. Now we have to add this property to the initial property value (7). 2097152 + 7 = 2097159, that’s our new property value. Set in attributes cell and save the MSI File. Now, check your MSI, and you could see that our textbox is a password textbox!!! 手把手教你用C#打包应用程序(安装程序)【卸载模块已添加】 2008年06月14日 星期六 下午 05:58 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图) 此主题相关图片如下: HYPERLINK "http://hiphotos.baidu.com/sunxiangwei/pic/item/2c153f29fa3d09ea99250a8c.jpg" \t "_blank" 2:安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成. 3:开始制作 安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来. 然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中. 这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式. 然后右击左边的"应用程序文件夹"打开属性对话框: 将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉, 不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称"; 然后打开解决方案管理器,右击你的解决方案名称,选择属性: 在打开的属性页中,选择"系统必备", 在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!! 选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的) 好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功! 4:制作完成 现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了. 【续】关于"卸载"功能的添加 上面的文章只介绍了简单的生成安装的方法, 但是在vs.net2005下并没有直接生成卸载程序的功能, 所以我们只好用msi来实现了, 原理我就不讲了,网上一搜一堆,我只讲操作, 【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去, 这个文件在c:\windows\system32文件夹下, 添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe", 当然这个关系不大,改不改都行的. 然后给他创建一个快捷方式,放到桌面或者"开始-程序"中, 我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了, 鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性, 这个区别很大,这时你就可以看到ProductCode了, 然后打开你创建的那个快捷方式的属性对话框, 在Aguements属性中输入"/x {ProductCode}",
本文档为【很不错的制作安装程序详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_152023
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:37
分类:互联网
上传时间:2011-01-18
浏览量:22