首页源码安装程序制作(vs 制作自定义安装程序的软件)

安装程序制作(vs 制作自定义安装程序的软件)

编程之家2024-01-29159次浏览

一、封装c#的源程序变成一个EXE或MSI安装包

C#应用程序的部署

安装程序制作(vs 制作自定义安装程序的软件)

1:新建安装部署项目

打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)

此主题相关图片如下:

2:安装向导

关闭后打开安装向导,点击下一步,或者直接点击完成.

3:开始制作

安装程序制作(vs 制作自定义安装程序的软件)

安装向导完成后即可进入项目文件夹:

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.

这样安装程序安装安装完成后会在"开始->所有程序"和"桌面"上生成程序的快捷方式.

然后右击左边的"应用程序文件夹"打开属性对话框:

将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,

安装程序制作(vs 制作自定义安装程序的软件)

不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";

然后打开解决方案管理器,右击你的解决方案名称,选择属性:

在打开的属性页中,选择"系统必备"里的NET.FRAMEWORK选项(一般默认都是选择到的),

OK然后解决方案上面点击生成就好了

嘎嘎~自己的第一个完整的程序完成了

第二个方法

将c#部署为Windows应用程序--

部署 Windows应用程序

本演练演示为启动记事本的 Windows应用程序创建一个安装程序的过程。在本演练中,您将首先创建一个 Windows应用程序,然后创建一个安装程序;以便在安装过程中设置快捷方式和文件关联、添加注册表项、显示自定义对话框以及检查 Internet Explorer的版本。

注意创建自己的安装程序时,不一定需要执行下面的所有步骤。本演练的目的是介绍部署中可能会用到的一些可选功能。若只是创建一个基本的安装程序,则只需完成此过程中的前四个部分。

创建 Windows应用程序

在“文件”菜单上指向“新建”,然后选择“项目”。

在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic项目”,然后选择“模板”窗格中的“Windows应用程序”。在“名称”框中,键入“我的记事本”。

单击“确定”关闭对话框。

项目即被添加到解决方案资源管理器中,并且打开 Windows窗体设计器。

在“工具箱”中选择“Windows窗体”选项卡,并将“按钮”控件拖到窗体中。

双击 Button控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码:

Shell("Notepad.exe", AppWinStyle.NormalFocus)

这将启动 Notepad.exe并将焦点对准它。

在“生成”菜单上,选择“生成我的记事本”该应用程序。

创建部署项目

在“文件”菜单上指向“添加项目”,然后选择“新建项目”。

在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入“我的记事本安装程序”。

单击“确定”关闭对话框。

项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“属性”窗口中,选择 ProductName属性,并键入“我的记事本”。

注意 ProductName属性确定文件夹名称和“添加/删除程序”对话框中为应用程序显示的名称。

将 Windows应用程序添加到安装程序中

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“文件系统编辑器”中,选择“应用程序文件夹”节点。

在“操作”菜单上,选择“添加”->“项目输出”。

在“添加项目输出组”对话框中,从“项目”下拉列表中选择“我的记事本”。单击“确定”关闭对话框。

从列表中选择“主输出”组,并单击“确定”。

在“生成”菜单上选择“生成我的记事本安装程序”。

部署应用程序(基本安装程序)

如果正在执行一个完整的演练过程,可以跳过此步骤。

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“项目”菜单上选择“安装”。

这将运行安装程序并在开发计算机上安装“我的记事本”。

注意必须在计算机上具有安装权限才能运行安装程序。

可选的部署功能

其余步骤演示可选的部署功能。

创建快捷方式

此步骤将为您的应用程序创建一个快捷方式,安装过程中,该快捷方式将放置到目标计算机的桌面上。

为 Windows应用程序创建快捷方式

在解决方案资源管理器中选择“我的记事本安装程序”项目。

在“文件系统编辑器”中,选择“主输出来自‘我的记事本’”节点。

在“操作”菜单上,选择“创建主输出来自‘我的记事本’的快捷方式”。

这将添加一个“主输出来自‘我的记事本’的快捷方式”节点。

将此快捷方式重命名为“我的记事本的快捷方式”。

选择“我的记事本的快捷方式”,并将其拖到左窗格的“用户桌面”文件夹中。

创建文件关联

此步骤为“我的记事本”添加文件关联,以便双击.vbn文件时启动“我的记事本”应用程序。

为 Windows应用程序创建文件关联

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件类型”。

在“文件类型编辑器”中选择“目标计算机上的文件类型”节点。在“操作”菜单上,选择“添加文件类型”。

将添加一个“新文档类型#1”节点,而且该节点将打开,以便您重命名。

将“新文档类型#1”重命名为 Vbn.doc。

在“属性”窗口中,将文件类型的 Extension属性设置为 vbn。

选择 Command属性并单击“省略号”()按钮。在“选择项目中的项”对话框中,定位到“应用程序文件夹”,并选择“主输出来自‘我的记事本’”。

单击“确定”关闭对话框。

添加注册表项

此步骤将一个注册表项以及相应的值添加到注册表中。运行时,可以从应用程序代码中引用此注册表项以检索每用户信息。

为 Windows应用程序添加注册表项

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上,指向“编辑器”,并选择“注册表”。

选择“HKEY_CURRENT_USER”节点并将其展开,然后展开“Software”节点,并选择“[Manufacturer]”节点。

注意“Manufacturer”节点两边有括号,表示它是一个属性。它将被替换为输入的部署项目的 Manufacturer属性值。

在“操作”菜单上,选择“新建”->“项”。

重命名 UserChoice项。

选择 UserChoice项。

在“操作”菜单上,指向“新建”,然后单击“字符串值”。

重命名 TextColor值。

在“属性”窗口中,选择 Value属性,并输入 Black。

添加自定义安装对话框

此步骤添加并配置一个在安装期间显示的自定义用户界面对话框。

添加自定义安装对话框

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。

在用户界面编辑器中,选择“安装”节点下的“启动”节点。

在“操作”菜单上,选择“添加对话框”。

在“添加对话框”对话框中,选择“复选框(A)”。

单击“确定”关闭对话框。

在“操作”菜单上,选择“上移”两次,将“复选框(A)”对话框放置在“安装文件夹”对话框之上。

在“属性”窗口中,将 BannerText属性设置为“示例”。

将 BodyText属性设置为“‘安装示例文件’复选框控制是否安装示例文件。如果处于未选中状态,则不安装示例。

将 CheckBox1Label属性设置为“要安装示例吗?”。

将 Checkbox2Visible、Checkbox3Visible和 Checkbox4Visible属性设置为 false。这将隐藏其他复选框。

使用示例

此步骤创建一个 Samples子文件夹,它将被安装到 Application文件夹的下面。

添加 Samples文件夹

在解决方案资源管理器中选择“我的记事本安装程序”项目。在“视图”菜单上指向“编辑器”,然后选择“文件系统”。“应用程序文件夹”仍应被选中。

从“操作”菜单上指向“添加”,然后选择“文件夹”。

将“新建文件夹#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 5.0或更高版本,如果未安装所需版本的 Internet Explorer,将停止安装过程。

添加启动条件来检查 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\My Notepad Installer\project configuration\My Notepad Installer.msi。默认“项目配置”是“调试”。

将该目录中的我的记事本安装程序.msi文件以及其他所有文件和子目录复制到另一台计算机上。

注意若要在未连网的计算机上安装,请将文件复制到 CD-ROM等传统媒体中。

在目标计算机上双击 Setup.exe文件来运行安装程序。

注意必须在计算机上具有安装权限才能运行安装程序。

二、如何用VS2008安装部署做自定义的子安装程序

有时我们除了需要安装系统必备组件之外,还需要做自定义的子安装程序,如我的系统安装程序就需要同时安装Oracle精简客户端(网上下载的精简3.0版,以下简称JOracle30)才能支撑系统数据库的应用,怎样才能让VS2008部署程序自动执行这套JOracle30的安装程序呢?

我首先想到的是用程序去实现,必竟大名鼎鼎的InstallShield安装系统也是MS做的,VS2008部署程序应该也是集成的InstallShield吧,用DoInstall脚本函数还是能轻而易举地调用其他安装程序的。可是,我将IDE翻了个遍也没有找到VS2008部署系统的程序入口,感情是人家根本就没有提供脚本程序让你写吧?C#到是可以写个类来控制,可我的是VC++程序,折腾半天还不知能不能用,还是另外找条路吧。

于是好一阵闹腾,网上帖子都翻遍了,都是不咸不淡,语焉不详,正心灰意冷时,突然想起了在系统安装部署制作时,要选择系统必备项,是不是可以将Joracle30作为系统必备项让部署程序进行选择呢?这样的安装程序可能既专业又优雅。这样我的突破重点就是如何针对VS2008做自定义的系统必备项了。结果证明我的方向是完全正确的,经过半天的努力,终于成功了!现将操作步骤整理如下,希望能对如我一般陷此困惑的朋友有所帮助,或能抛砖引玉!

(1)将自定义的安装程序COPY至Bootstrapper文件夹中

VS2008的系统必备项是用特定文件路径和xml描述文件一起构成的,这点倒是和JAVA应用服务器很像。这个Bootstrapper是具体路径在我的机器中是:“C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages”。在这个目录中,您可很清楚地看到在VS2008部署程序中可选的所有的组件,呵呵。我们要依葫芦画瓢同样建一个文件夹“Oracle精简客户端”这样的系统必备组件。名称就起“Oracle9i客户端精简版30”好了。如下:

在“Oracle9i客户端精简版30”文件夹中,断续建一个“zh-CHS”安装本地化文件夹,将安装程序COPY进这个文件夹中,如:

我的Oracle精简客户端安装有两文件,“Oracle9i客户端精简版3.0.msi”和“Oracle9i客户端精简版3[1].0.part2.rar”。

至此,我们将系统必备项所需的目录结构建好了,但是还不行,还需要将描述文件手动构建起来,其实就是两个xml文件。

(2)创建产品清单和程序包清单

产品清单其实就是“Oracle9i客户端精简版30”文件夹下的那个product.xml文件;程序包清单其实就是“zh-CHS”文件夹下的package.xml文件。

Product.xml文件的清单如下:

<?xml version="1.0" encoding="utf-8"?>

<Product ProductCode="Oracle9i精简客户端3_青蛙王子" xmlns="htt p://schemas.microsoft.c om/developer/2004/01/bootstrapper">

</Product>

这倒没什么可说的,倒是这个ProductCode究竟是不是一定用精简客户端安装的ProductCode我还没有发现有什么弊端,我在一台已安装精简客户端的机器的注册表将实际的ProductCode找了出来,但是没有用它,反正我用"Oracle9i精简客户端3_青蛙王子"这个字符串也能工作。

Package.xml文件的清单如下:

<?xml version="1.0" encoding="utf-8"?>

<Package Name="Oracle9i精简客户端3_0" Culture="Culture" xmlns="htt p://schemas.microsoft.c om/developer/2004/01/bootstrapper">

<InstallChecks>

<RegistryCheck Property="ORACLE_INST" Key="HKLM/SOFTWARE/Microsoft/ORACLE/inst_loc" Value="C:/Program Files/Oracle/Inventory"/>

</InstallChecks>

<PackageFiles CopyAllPackageFiles="false">

<PackageFile Name="Oracle9i客户端精简版3[1].0.part2.rar"/>

<PackageFile

Name="Oracle9i客户端精简版3.0.msi"

HomeSite="HomeSiteName_32"/>

</PackageFiles>

<Commands Reboot="Defer">

<Command PackageFile="Oracle9i客户端精简版3.0.msi" Arguments=''>

<InstallConditions>

<BypassIf Property="ORACLE_INST" Compare="ValueExists"/>

</InstallConditions>

</Command>

</Commands>

</Package>

Package元素的 Name属性的值其实就是在VS2008部署程序的系统必备选择框中显示的组件名称。

<PackageFiles>元素用来指定组件包括的文件,要将每个安装文件要用子元素<PackageFile>指定出来哦,VS2008部署程序在编译生成安装文件时,就是按这个清单将组件的文件COPY过去的。

<InstallChecks>< Commands>这两个元素是要配对的,和struts框架的控制文件一样,它们的主要作用就是利用注册表项或文件来判断组件是否需要安装。我是用注册表来判断oracle是否已经在客户端上安装,就需要用<RegistryCheck>元素来检查,用“HKLM/SOFTWARE/Microsoft/ORACLE/inst_loc”这个注册表键来判断检查,并给这个检查项目起个名字叫“ORACLE_INST”。

<Command>元素则是在<InstallConditions>元素指定的条件满足时,执行相应的组件安装程序,这里我的安装程序是“Oracle9i客户端精简版3.0.msi”,是一个普通的安装程序,没有参数。

<InstallConditions>元素我的理解就是指定安装条件啦,<BypassIf Property="ORACLE_INST" Compare="ValueExists"/>一句我的想法是:如果注册表存在“HKLM/SOFTWARE/Microsoft/ORACLE/inst_loc”这个键就认为已经安装了Oracle客户端,就不用执行精简客户端安装,否则视为没有安装,就要执行。

(3)配置完毕!

我们到VS2008部署程序的系统必备选择项中找找,果真发现了“Oracle9i精简客户端3_0”这个组件了。如下图:

呵,以下就是选择他,编译生成部署项目即可。在生成的安装目录中,精简客户端目录就在其中。(4)运行setup.exe文件,即可执行安装程序了,记住了,不是执行msi文件,msi安装文件不能进行系统必备组件的判断安装。系统必备组件安装如下图。

(5)有一点遗憾的是,我的本意如果客户端已经安装了Oracle客户端,就不用执行精简客户端安装,没有安装,就要执行。可我将这个安装软件在已经安装了Oracle客户端的机器上试运行时,安装软件还是提示需要安装“Oracle9i精简客户端3_0”,虽然安装过程一闪而过,可能实际上并没有执行

三、C#软件winform程序安装包制作及卸载程序制作

使用vs2010 winform程序开发的软件的人比较多,程序的开发是为了在不同的人不同的机器使用,为了使不同的机器能使用该软件就需要在制作程序安装包,安装包里必须包含该软件运行所选的所有环境,下面就来讲解下winform程序安装包的制作。 1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型-安装与部署-安装向导(安装项目也一样),然后点击确定.(详细见下图)此主题相关图片如下:新建安装部署项目 2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成. 3:开始制作安装向导完成后即可进入项目文件夹:双击”应用程序文件夹”在右边的空白处右击,选择添加-文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.开始制作然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的”用户的´程序´菜单”和”用户桌面”中.这样安装程序安装安装完成后会在“开始-所有程序”和”桌面”上生成程序的快捷方式.程序的快捷方式然后右击左边的”应用程序文件夹”打开属性对话框:将属性中的”defaultlocation”的路径中的”[manufacturer]“去掉,不然的话做好的安装程序默认安装目录会是”c:\programm file\你的用户名\安装解决方案名称”;然后打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择”系统必备”,选择”系统必备在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)安装文件包关于系统必备的说明:如果机器上没.net环境采用上面的方法是网上下载安装,下面的方法则是本地直接安装免去下载的过程。设置系统必备,右键选择安装项目,进入属性页中,单击”系统必备”按钮,进入系统必备对话框;勾选“创建用于安装系统必备组件的安装程序”,在安装系统必备组件列表中,选择重要一点:勾选”从与我的应用程序相同的位置下载系统必备组件(D)”,其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件)好了,这样就完成99%了,然后点击”生成-生成解决方案”,哈,生成成功! 4:制作完成现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.【续】关于”卸载”功能的添加上面的文章只介绍了简单的生成安装的方法,但是在vs.net2005下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,原理我就不讲了,网上一搜一堆,我只讲操作,【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加一个msiexec.exe添加进去以后,为了让他更像个卸载程序,把他的名字改成”Uninstall.exe”,当然这个关系不大,改不改都行的.然后给他创建一个快捷方式,放到桌面或者”开始-程序”中,我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了,鼠标左键单击项目名称然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入”/x{ProductCode}”属性对话框生成带有卸载功能的安装程序好了,然后点击”生成解决方案”即可生成带有卸载功能的安装程序了.补充:自定义用户界面 1、打开用户界面 2、这里可以设置已有窗体的属性和新增窗体窗体的属性和新增窗体设置窗体属性设置窗体的属性比如这里可以设置一下BannerBitmap,安装窗口上面的图片,方法和前面的ICO文件一样,浏览去找Images下面的Bmp文件即可!就是这样的效果,哈哈,效果差了点啊!设置一下BannerBitmap可以根据需要来新增窗口,比如密码啊,等等新增窗口就是上面的这个窗口五、卸载程序怎么打包上去?我试了好几种方面都不太好使,可能是没理解!最后用了这一种方法,感觉还不错! 1、新建一个控制台程序 2、看代码? using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace UninStall{ class Program{ static void Main(string[] args){ string sysroot= System.Environment.SystemDirectory; System.Diagnostics.Process.Start(sysroot+“\\msiexec.exe“,“/x{522B529D-8A62-432D-962F-D0CFF826775E}/qr”);}}}注意上面代码里的红字部分,这个就是你要打包的程序的安装与部署项目的ProductCode,那么这个ProductCode在哪里找呢?请记住,这里是两个系统,一个是你要打包的系统,另一个是控制台程序,所以啊,这点,要理解!去你要打包的项目里去找安装与部署项目看到了吧,就是它了!把它拷贝过来,放在控制台程序里生成一下,上面UNIT里所导入的文件就是现在生成的文件了!!

国外手机号(各国手机号码前缀)nod32用户名(ESET NOD32激活码 许可证密钥 用户名密码)