几句话没法和你说清楚,干脆给你MSDN:)
本演练演示为启动记事本的 Windows 应用程序创建一个安装程序的过程。在本演练中,您将首先创建一个 Windows 应用程序,然后创建一个安装程序;以便在安装过程中设置快捷方式和文件关联、添加注册表项、显示自定义对话框以及检查 Internet Explorer 的版本。注意 创建自己的安装程序时,不一定需要执行下面的所有步骤。本演练的目的是介绍部署中可能会用到的一些可选功能。若只是创建一个基本的安装程序,则只需完成此过程中的前四个部分。
创建 Windows 应用程序 在“文件”菜单上指向“新建”,然后选择“项目”。 
在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic 项目”,然后选择“模板”窗格中的“Windows 应用程序”。在“名称”框中,键入“我的记事本”。 
此项目被添加到解决方案资源管理器中,并且窗体设计器打开。 在“工具箱”中选择“Windows 窗体”选项卡,并将“按钮”(Button) 控件拖到窗体中。 
双击 Button 控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码: 
Shell("Notepad.exe", AppWinStyle.NormalFocus)
这将启动 Notepad.exe 并将焦点对准它。 在“生成”菜单上,选择“生成我的记事本”该应用程序。 
创建部署项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 
在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入“我的记事本安装程序”。 
项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“属性”窗口中,选择 ProductName 属性,并键入“我的记事本”。 
注意 ProductName 属性确定应用程序显示在文件夹名称以及“添加/删除程序”对话框中的名称。
将 Windows 应用程序添加到安装程序中 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“应用程序文件夹”节点。 
在“操作”菜单上,选择“添加”->“项目输出”。 
在“添加项目输出组”对话框中,从“项目”下拉列表中选择“我的记事本”。 
从列表中选择“主输出”组,并单击“确定”。 
在“生成”菜单上选择“生成我的记事本安装程序”。 
部署应用程序(基本安装程序)如果正在执行一个完整的演练过程,可以跳过此步骤。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“项目”菜单上选择“安装”。 
这将运行该安装程序并在开发计算机上安装“我的记事本”。 其余步骤演示可选的部署功能。为 Windows 应用程序创建快捷方式此步骤将为您的应用程序创建一个快捷方式,安装过程中,会将该快捷方式放置到目标计算机的桌面上。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“来自‘我的记事本’的主输出”节点。 
在“操作”菜单上,选择“创建 主输出来自我的记事本(活动)的快捷方式”。 
这将添加一个“主输出来自我的记事本(活动)的快捷方式”节点。 重命名“主输出来自我的记事本(活动)的快捷方式”快捷方式。 
选择“主输出来自我的记事本(活动)的快捷方式”,并将其拖到左窗格的“用户桌面”文件夹中。 
为 Windows 应用程序创建文件关联此步骤为“我的记事本”添加文件关联,以便双击 .vbn 文件时启动“我的记事本”应用程序。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件类型”。 
在“文件类型编辑器”中选择“目标计算机上的文件类型”节点。在“操作”菜单上,选择“添加文件类型”。 
将添加一个“新文档类型 #1”节点,而且该节点将打开,以便您重命名。 将“新文档类型 #1”重命名为 Vbn.doc。 
在“属性”窗口中,将文件类型的 Extension 属性设置为 vbn。 
选择 Command 属性并单击“省略号”() 按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,并选择“来自‘我的记事本’的主输出”。 
为 Windows 应用程序添加注册表项此步骤将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索每用户信息。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,指向“编辑器”,并选择“注册表”。 
选择“HKEY_CURRENT_USER”节点并将其展开,然后展开“Software”节点,并选择“[Manufacturer]”节点。 
注意 “Manufacturer”节点两边带有括号,这表示它是一个属性。它将被输入的部署项目的 Manufacturer 属性值所替代。
在“操作”菜单上,选择“新建”->“键”。 
重命名 UserChoice 键。 
在“操作”菜单上,选择“新建”,再选择“字串值”。 
重命名 TextColor 值。 
在“属性”窗口中,选择 Value 属性,并输入 Black。 
添加自定义安装对话框此步骤添加并配置一个在安装期间显示的自定义用户界面对话框。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。 
在用户界面编辑器中,选择“安装”节点下的“启动”节点。 
在“操作”菜单上,选择“添加对话框”。 
在“添加对话框”对话框中,选择“复选框 (A)”。 
在“操作”菜单上,选择“上移”两次,将“复选框 (A)”对话框放置在“选择安装文件夹”对话框之上。 
在“属性”窗口中,将 BannerText 属性设置为“示例”。 
将 BodyText 属性设置为“‘安装示例文件’复选框控制是否安装示例文件。如果处于未选中状态,则不安装示例。” 
将 CheckBox1Label 属性设置为“要安装示例吗?”。 
将 Checkbox2Visible、Checkbox3Visible 和 Checkbox4Visible 属性设置为 false。这将隐藏其他复选框。 
添加 Samples 文件夹此步骤创建一个 Samples 子文件夹,它将被安装到 Application 文件夹的下面。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件系统”。“应用程序文件夹”仍应被选中。 
从“操作”菜单上指向“添加”,然后选择“文件夹”。 
将“新建文件夹 #1”重命名为“示例”。 
为应用程序创建示例文件此步骤创建两个简单的文本文件,如果用户在自定义对话框中选择“安装示例”选项,将安装这两个文本文件。 使用记事本或其他文本编辑器创建一个包含文本“这是 rules.vbn”的文本文件,然后将其保存为 Rules.vbn。 
注意 若要防止记事本自动添加 .txt 扩展名,请从“文件类型”下拉列表中选择“所有文件”。
创建另一个包含文本“这是 memo.vbn”的文本文件,将其保存为 Memo.vbn。 
将示例添加到安装程序中此步骤将示例文件添加到 Samples 文件夹中,并设置决定是否安装该文件的条件。 在解决方案资源管理器中选择“我的记事本安装程序”项目。从“视图”菜单中指向“编辑器”,选择“文件系统”,然后选择“示例”文件夹。 
从“操作”菜单上指向“添加”,然后选择“文件”。将 Rules.vbn 和 Memo.vbn 文件添加到“示例”文件夹中。 
在文件系统编辑器中选择 Rules.vbn。 
在“属性”窗口中,将 Condition 属性设置为 CHECKBOXA1=1。运行安装程序时,只在自定义的复选框被选中时才安装 Rules.vbn 文件。 
在文件系统编辑器中选择 Memo.vbn 文件。 
在“属性”窗口中,将 Condition 属性设置为 CHECKBOXA1=1。运行安装程序时,只在自定义的复选框被选中时才安装 Memo.vbn 文件。 
添加启动条件来检查 Internet Explorer 版本此步骤检查在目标计算机上是否安装了 Internet Explorer 5.0 或更高版本,如果未安装所需版本的 Internet Explorer,将停止安装过程。注意 此步骤旨在阐述启动条件的概念;“我的记事本”应用程序实际上并不依赖于 Internet Explorer。
在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“启动条件”。 
在启动条件编辑器中,选择“目标计算机上的要求”节点。 
在“操作”菜单上,选择“添加文件启动条件”。 
将在“搜索目标计算机”节点下面添加一个“搜索 File1”节点,而在“启动条件”节点下面添加一个“Condition1”节点。 将“搜索 File1”重命名为“搜索 Internet Explorer”。 
在“属性”窗口中,将 FileName 属性设置为 Iexplore.exe,将 Folder 属性设置为 [ProgramFilesFolder],将 Depth 属性设置为 2,将 MinVersion 属性设置为 5.00。 
选择“Condition1”节点。 
将 Message 属性设置为“该程序需要 Microsoft Internet Explorer 5.0 或更高版本。请安装 Internet Explorer 并重新运行‘记事本’安装程序。” 
设置部署项目的可选属性此步骤设置一个属性,以便在目标计算机上没有正确版本的 Windows 安装程序时,自动安装 Windows 安装引导程序文件。 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,选择“属性页”。 
在“我的记事本安装程序”属性页中,选择“引导程序”下拉列表,然后选择“Windows 安装引导程序”。 
在“生成”菜单上选择“生成我的记事本安装程序”。 
在开发计算机上安装“我的记事本” 在解决方案资源管理器中选择“我的记事本安装程序”项目。在“项目”菜单上选择“安装”。 
这将运行该安装程序并在开发计算机上安装“我的记事本”。 将“我的记事本”部署到其他计算机上 在 Windows 资源管理器中,定位到项目目录并查找所生成的安装程序。默认路径是 \documents and settings\yourloginname\我的记事本安装程序\project configuration\我的记事本安装程序.msi,默认“项目配置”是“Debug”。 
将该目录中的 我的记事本安装程序.msi 文件以

解决方案 »

  1.   

    部署和分发.NET应用程序的两种方法(转载)
     
    (技术巅峰 2001年10月09日 16:56  来源:http://www.ccidnet.com/tech/guide/2001/10/09/58_3399.html) 
     
    微软的.NET计划是一项激动人心的浩大工程,随着VS.NET Beta2版本的发布,.NET技术也逐渐趋于稳定和成型,越来越多的公司和技术爱好者投入到.NET的开发中来,而现在及早开始.NET的学习和相关开发正是好时机。但是,目前存在着的一个明显事实是,所有的基于.NET技术的应用程序或者产品都需要.NET的运行库支持,因为.NET在程序部署和分发方面有些类似,它需要.NET Framework SDK的支持(JAVA应用程序需要JDK的支持才可以运行),不幸的是,目前的Win9x系列以及WinNT/2000系列均没有内置.NET SDK(不难理解,因为.NET技术的推出的时间晚于上面提到的各种操作系统的发布时间),甚至连即将发布的WindowsXP都不会内置.NET SDK。虽然,没有了.NET SDK的支持,就连一个简单的在屏幕上面打印“Hello,World!”的应用程序都无法运行,那我们也不可能要求用户必须手工安装将近120M的.NET SDK后才能运行我们自己开发的应用程序!有没有更为简便的发布.NET应用程序的方法呢?答案是肯定的,下面我们就提供两种可以正确部署和发布.NET应用程序的方法。一、用VS.NET来部署和分发.NET应用程序
    无庸置疑的是,VS.NET是开发.NET应用程序的一个非常强大和快捷的集成开发环境(IDE),微软历来在配合自己的应用技术方面都能做到尽善尽美,当然,我想也只有微软才能真正做到和.NET技术的无缝衔接。下面我们就详细看看如何利用VS.NET来部署和分发.NET应用程序。为了讲解的方便,我们例举一个非常简单的Windows应用程序:简单的在屏幕上面放置一个按钮Button。我们开发.NET应用程序的测试环境是:Windows2000 Server中文版(SP2)+VS.NET Beta2中文版。第一步: 在原有的项目基础上,再新建立一个项目,并且选择其中的“安装和部署项目”,如下图所示:点击可放大 注意上图中红色标记的地方,尤其需要注意选择“添入解决方案”这个选项,因为只有这样才会将部署项目和我们自己的应用程序放置到同一个“解决方案”当中,这一点千万要注意了!第二步: 点击“确定”按钮之后,会出现安装向导,如下图所示:点击可放大 因为我们的.NET测试程序是一个Windows应用程序,所以我们在上图中选择“创建用于Windows应用程序的安装程序(S)”。点击“下一步(N)”,我们将会看到需要选择的画面,如下图所示:点击可放大 上图中的各个选择项目的含义相信大家可以从中文名称中直观的理解到,我们就不再多费口舌了。一路点击“下一步”直到最终安装向导的完成会需要5步,最终会在当前的解决方案中添加一个名称为“Setup1”的安装项目。在这里我们稍微提一下在VS.NET中的“解决方案”这个概念,其实在VS.NET中的所谓“解决方案”就类似于以前VB中的“项目组”概念,也就是将多个项目集成到一起而已,只不过VS.NET中的“解决方案”这个概念的覆盖范围更广泛而已罢了,这个我们知道一下就可以了。第三步: 在完成上面的两个步骤之后,我们就会发现,VS.NET的安装向导已经将我们的应用程序中所用到的各种程序集、系统DLL文件、资源文件等等依赖文件找到了,并且我们还可以方便的继续添加额外的我们需要的其他相关文件,在这方面做的有些类似于InstallShield了,不过不需要编写安装Script脚本。这样,我们选择VS.NET的菜单“生成(B)”—〉“生成解决方案”,即可立即生成我们的安装文件Setup1.msi,这个安装文件你可以在你的应用程序解决方案所在的目录中找到。找到了这个安装文件你就会大吃一惊了,即使我们的应用程序只有简单的一句话,打包之后就会有17M之大!不过没有办法,VS.NET会生成一个简洁的.NET SDK放在我们刚才生成的那个安装文件当中。剩下来的事情,就是直接在没有安装.NET环境的Windows9x/NT/2000/XP中运行我们的这个Setup1.msi文件就可以了!二、手工部署和分发.NET应用程序
    在上面的第一种方法中,我们可以感受到VS.NET来做.NET应用程序的方便和快捷,但是并不是所有的人都是使用VS.NET集成开发环境来开发.NET应用程序的,对于一些小的应用程序,根本不需要安装庞大的VS.NET开发环境也可以方便的开发,比如使用UtraEdit软件来编写小巧玲珑的.NET应用程序也是一个不错的选择。在这里我们就说说如何不使用VS.NET来自己手工的部署和分发我们的.NET应用程序。首先分两类:第一类:基于Web的.NET应用程序 对于这一类应用程序,可以说在部署和分发方面是最为简单的了,我们只需要将.NET运行环境安装到我们自己的服务器上面就可以了,用户端需要的仅仅是兼容IE4.0以上的任何浏览器就可以了。第二类:基于Windows的.NET应用程序 对于这一类,应用程序,我们可以使用InstallShield安装软件来手工打包。首先,先在我们的.NET Frameword SDK光盘中找到目录dotNet,在这个目录里面我们可以发现一个大小大约15M的一个安装文件,这个就是我们的.Net 的运行时刻文件,类似于JAVA的JRE(JAVA运行时环境)。这个文件的体积也是比较大的,但是相对于.NET SDK文件的庞大的120M可以算是要好许多了。至于InstallShield的详细使用方法我在这里也无法透彻讲解,不过使用起来是非常方便的,我只提出需要注意的地方:1、在使用InstallShield中,可以稍微编写一段脚本来监测目标机器时候已经存在了.NET的运行环境,如果有了,就不必安装.NET运行时文件了。2、所有我们自己的DLL文件不在需要注册,只需要简单的将他们拷贝到我们应用程序所在的目录即可!我们在这里例举的是使用InstallShield来制作安装程序,当然还可以使用其它的任何第三方安装制作软件来部署和分发我们的.NET应用程序,比如Windows Installer等等。好了,最终我们比较这两种部署和分发.NET应用程序的方法,我们可以看到,使用第二种方法能够带来的一个潜在好处是,我们可以将.NET运行时环境文件和自己的应用程序分离开来,从而在某些情况下可以大大减少部署安装应用程序的文件大小;而第一种方法就不可以了,他将始终将.NET运行时环境文件打包进入安装文件。但是第一种方法的优点也是显而易见的,就是比较智能化,需要人干预的地方很少,并且如果需要部署和分发的.NET应用程序是比较大型的软件的话,我们推荐使用第一种方法!相信在微软正式发布.NET以及VS.NET之后,部署和分发.NET应用程序将会变得更加简单和快捷,但是最好的方式是希望微软在下一版本的操作系统中能够内置.NET运行时环境就好了,那样的话,我们就不必时刻“随身携带”体积不算小的.NET运行时环境文件了,让我们拭目以待吧。(以上方法在Windows2000 Server中文版SP2+VS.NET Beta2 中文版中测试通过)
      

  2.   

    thanks marsxia and cmmi注意上图中红色标记的地方,尤其需要注意选择“添入解决方案”这个选项,因为只有这样才会将部署项目和我们自己的应用程序放置到同一个“解决方案”当中,这一点千万要注意了!奇怪的是我的VS 怎么就没有 “添入解决方案”只有一个”创建解决方案目录“.我通过添加合并模块将 VS所需的所有模块加入到安装程序中,系统提示“license Key 不能为空”,不解。去掉合并模块,编译没有问题。原来是合并模块文件中的一个“regwiz.msm‘"文件的问题。可惜现在还没有解决,另外我添加了用户桌面,但是执行玩安装程序后点击桌面图标只是运行到程序组中并不能运行程序,何解?
      

  3.   

    我用的是Windows 2000 Advanced Server + VS.net 中文企业正式版,按该文方法全部通过,不知你用的是何版本?^_^
      

  4.   

    cmmi(yxb) :我跟你的版本是一样的.当我生成的时候它总是提示:警告:此安装程序不包含 .NET 框架,在安装之前,必须在目标计算机上通过运行 dotnetfx.exe 安装 .NET 框架。您可以在 Visual Studio .NET 的“Windows 组件更新”光盘中找到 dotnetfx.exe。Dotnetfx.exe 可以与您的安装程序一起重新发布。这是为什么?