这几天写了两个小工具,一个是图片自动浏览器,另一个是批量文件名修改器。(如你感兴趣,在这里
http://www.qqaa.net/download/ 可以下载到)
正想发布时,遇到WIN98,WIN2K系列,WIN2003,WIN XP客户端的发布问题,主要是有的可能安装了“.NET 框架”,有的则没有。
怎么解决这个问题呢?
以下是我的解决方法:
1、VS.Net中新建一个安装与布署项目,选择“安装向导”,名称为你的应用程序名称,选择好方案保存位置,“确定”,出现相应提示,按“下一步”,选择一种项目类型,我选择了默认的第一个,“下一步”。
2、选择要包括的文件,这里要注意了!
如果你需要让用户可以卸载你的应用程序,除了添加你的应用程序名称外(我这里由于是两个小工具,所以有两个应用程序文件,一个是AsBestSee.exe,另一个是AsBestFileName.exe),还需要选择一个名为msiexec.exe的文件,注意:(1)如果是WIN98下的安装,请选择WIN98操作系统目录下的msiexec.exe文件(一般在c:/windows/system目录下);(2)如果是其他,比如WIN2K系列,请选择该操作系统目录下的msiexec.exe文件(一般在/winnt/system32目录下)。
3、选择下一步,下一步或“完成”,进入项目方案中。在左边“目标计算机上的文件系统”下,有个“应用程序文件夹”,点击之,找到msiexec.exe文件,按鼠标右键,“创建msiexec.exe 的快捷方式”,再点中新出现的项目“msiexec.exe 的快捷方式”,重命名为你需要卸载的说明文字,如我的:“卸载QQAA工具”。
4、点击右边的解决方案资源管理器中按点击你的项目名称(即第二行),出现“XXX布署项目属性”字样,栏中有一个“ProductCode”的属性,属性值中有“{8DC61EAE-B624-491D-AD49-FFAEWRERRE}”类似字样,选中它“复制”。
5、再次点击你的卸载快捷方式名称,比如我的是“卸载QQAA工具”,再到右下角属性栏中,有一个叫Arguments的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将ProductCode的属性值COPY至此。
6、将此快捷拖入用户的“程序”菜单中,这样就可以在“运行”-“程序”菜单中看到“卸载QQAA工具”了。如果需要将“卸载XXXX”快捷方式加入桌面呢?呵呵,重复以上操作一次,不同的是要将它拖入“用户桌面”。
7、再在VS.Net的顶部菜单栏中“生成”-“生成 XXXX”(XXXX为你的项目名称).
8、从微软网站上 http://www.microsoft.com/downloads/直接下载Microsoft® .NET Framework 1.1 版可再发行组件包(dotnetfx.exe文件),COPY到您的发布生成的目录中,再放上你的安装说明及提示文件等。安装说明中提示用户首先安装dotnetfx.exe,再点击你的应用程序进行运行即可。
大功告成!
========================================
正想发布时,遇到WIN98,WIN2K系列,WIN2003,WIN XP客户端的发布问题,主要是有的可能安装了“.NET 框架”,有的则没有。
怎么解决这个问题呢?
以下是我的解决方法:
1、VS.Net中新建一个安装与布署项目,选择“安装向导”,名称为你的应用程序名称,选择好方案保存位置,“确定”,出现相应提示,按“下一步”,选择一种项目类型,我选择了默认的第一个,“下一步”。
2、选择要包括的文件,这里要注意了!
如果你需要让用户可以卸载你的应用程序,除了添加你的应用程序名称外(我这里由于是两个小工具,所以有两个应用程序文件,一个是AsBestSee.exe,另一个是AsBestFileName.exe),还需要选择一个名为msiexec.exe的文件,注意:(1)如果是WIN98下的安装,请选择WIN98操作系统目录下的msiexec.exe文件(一般在c:/windows/system目录下);(2)如果是其他,比如WIN2K系列,请选择该操作系统目录下的msiexec.exe文件(一般在/winnt/system32目录下)。
3、选择下一步,下一步或“完成”,进入项目方案中。在左边“目标计算机上的文件系统”下,有个“应用程序文件夹”,点击之,找到msiexec.exe文件,按鼠标右键,“创建msiexec.exe 的快捷方式”,再点中新出现的项目“msiexec.exe 的快捷方式”,重命名为你需要卸载的说明文字,如我的:“卸载QQAA工具”。
4、点击右边的解决方案资源管理器中按点击你的项目名称(即第二行),出现“XXX布署项目属性”字样,栏中有一个“ProductCode”的属性,属性值中有“{8DC61EAE-B624-491D-AD49-FFAEWRERRE}”类似字样,选中它“复制”。
5、再次点击你的卸载快捷方式名称,比如我的是“卸载QQAA工具”,再到右下角属性栏中,有一个叫Arguments的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将ProductCode的属性值COPY至此。
6、将此快捷拖入用户的“程序”菜单中,这样就可以在“运行”-“程序”菜单中看到“卸载QQAA工具”了。如果需要将“卸载XXXX”快捷方式加入桌面呢?呵呵,重复以上操作一次,不同的是要将它拖入“用户桌面”。
7、再在VS.Net的顶部菜单栏中“生成”-“生成 XXXX”(XXXX为你的项目名称).
8、从微软网站上 http://www.microsoft.com/downloads/直接下载Microsoft® .NET Framework 1.1 版可再发行组件包(dotnetfx.exe文件),COPY到您的发布生成的目录中,再放上你的安装说明及提示文件等。安装说明中提示用户首先安装dotnetfx.exe,再点击你的应用程序进行运行即可。
大功告成!
========================================
打包的具体操作步骤(VS.net2003):
1)新建“安装和部署项目”-->“安装向导”
2)选择菜单中 项目-->添加-->文件(这里?gt;>按唇ㄓ糜趙indows应用程序.exe”)-->打开
3)一般会自动将依赖项添加到“检测到的依赖项”,如果没有,那么我们要手动将其加入4)
Crystal_Managed2003.msm (如果有水晶报表)
dotnetfxredist_x86.msm (.net一定是必须的)
... (如果有引用其他的dll)
4)手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件) (包括dotNetFramework和MDAC27)
位于:C:/Program Files/Common Files/Merge Modules/ 下,*为必要的
具体功能如下:
(托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间)
* Crystal_Managed2003.msm
Crystal_Managed2003_chs.msm
(对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)
* Crystal_Database_access2003.msm
Crystal_Database_access2003_chs.msm
(KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,注意是添加合并模块,否则没有“MergeMouduleProperties”属性)
* Crystal_regwiz2003.msm
(如果报表文件使用了 ADO.NET 的 dataset 数据集对象,那么 VC_User_CRT71_RTL_X86_---.msm 和 VC_User_STL71_RTL_X86_---.msm 模块也必须包含在安装工程中。
而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录)
VC_User_CRT71_RTL_X86_---.msm
VC_User_STL71_RTL_X86_---.msm
(很多人经常出现查询错误,不妨加上这个)
5)打开解决方案-->右键点击Crystal_regwiz2003.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
6)生成解决方案(或直接按Ctrl+Shift+B)
至此整个分发程序已经做好,再把刚才做的那个安装程序双击一下……
-----------------------------------------------------------------------
打包時加入卸载功能:
方法一:
1.在打包項目中添加文件msiexec.exe(一般可在c:/windows/system32/下找到)
2.在文件系統視圖中選擇應用程序文件夾,在msiexec.exe上按右鍵,選擇創建快捷方式,重命名快捷方式為"卸载".
3.更改此快捷方式的Arguments 为"/x {產品id}",產品id的值為打包項目的ProductCode屬性值.
方法二:(推荐)
1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性标签,不是右键中的属性),下面要用到
2.用VS.net建立一个新的控制台程序uninst.exe文件
'power by: landlordh
'for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then
myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB0779559}") '改为自己的ProductCode
End If
myProcess.Close()
End Sub
End Module
3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷方式
-----------------------------------------------------------------------
把MS的pluginstaller插件装上后,用vb.net的自带的打包工具打包,就会自动把
.net framework环境打进去,再下面的步骤进行设置,就可以把MDAC也打包.
使用 Setup 项目安装 MDAC
1.确保 Visual Studio .NET 框架引导程序插件已安装。
2.在 Solution Explorer 中选择 Setup 项目。
从 View 菜单指向 Editor,并选择 Launch Conditions(启动条件)。
3.选择 Requirements on Target Machine(搜索目标计算机) 节点。
从 Action 菜单,选择 Add Registry Launch Condition(添加注册表搜索)。
4.选择 Search for RegistryEntry1 节点。在 Properties 窗口中,
选择 RegKey 属性,并键入 Software/Microsoft/DataAccess。
5.选择 Root 属性,并选择 vsdrrHKLM。
6.选择 Value 属性,并键入 FullInstallVer。
7.选择 Property 属性,并键入 MDACSEARCH。
8.在 Launch Conditions Editor(启动条件) 中,添加Condition1 节点。
选择 Condition1 节点,在 Properties 窗口中,选择 Condition 属性,并选择 MDACSEARCH>="2.6"。
9.在 Solution Explorer 中选择 Setup 项目。在 Project 菜单上,选择 Properties。
10.将 Bootstrapper 属性设置为 Windows Installer Bootstrapper(Windows 安装引导程序)。
编译 Setup 项目时,.NET 框架可重新分发软件包和 MDAC 将同时与该 Setup.exe 一起打包。
1)新建“安装和部署项目”-->“安装向导”
2)选择菜单中 项目-->添加-->文件(这里?gt;>按唇ㄓ糜趙indows应用程序.exe”)-->打开
3)一般会自动将依赖项添加到“检测到的依赖项”,如果没有,那么我们要手动将其加入4)
Crystal_Managed2003.msm (如果有水晶报表)
dotnetfxredist_x86.msm (.net一定是必须的)
... (如果有引用其他的dll)
4)手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件) (包括dotNetFramework和MDAC27)
位于:C:/Program Files/Common Files/Merge Modules/ 下,*为必要的
具体功能如下:
(托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间)
* Crystal_Managed2003.msm
Crystal_Managed2003_chs.msm
(对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)
* Crystal_Database_access2003.msm
Crystal_Database_access2003_chs.msm
(KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,注意是添加合并模块,否则没有“MergeMouduleProperties”属性)
* Crystal_regwiz2003.msm
(如果报表文件使用了 ADO.NET 的 dataset 数据集对象,那么 VC_User_CRT71_RTL_X86_---.msm 和 VC_User_STL71_RTL_X86_---.msm 模块也必须包含在安装工程中。
而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录)
VC_User_CRT71_RTL_X86_---.msm
VC_User_STL71_RTL_X86_---.msm
(很多人经常出现查询错误,不妨加上这个)
5)打开解决方案-->右键点击Crystal_regwiz2003.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)
6)生成解决方案(或直接按Ctrl+Shift+B)
至此整个分发程序已经做好,再把刚才做的那个安装程序双击一下……
-----------------------------------------------------------------------
打包時加入卸载功能:
方法一:
1.在打包項目中添加文件msiexec.exe(一般可在c:/windows/system32/下找到)
2.在文件系統視圖中選擇應用程序文件夾,在msiexec.exe上按右鍵,選擇創建快捷方式,重命名快捷方式為"卸载".
3.更改此快捷方式的Arguments 为"/x {產品id}",產品id的值為打包項目的ProductCode屬性值.
方法二:(推荐)
1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性标签,不是右键中的属性),下面要用到
2.用VS.net建立一个新的控制台程序uninst.exe文件
'power by: landlordh
'for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then
myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB0779559}") '改为自己的ProductCode
End If
myProcess.Close()
End Sub
End Module
3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷方式
-----------------------------------------------------------------------
把MS的pluginstaller插件装上后,用vb.net的自带的打包工具打包,就会自动把
.net framework环境打进去,再下面的步骤进行设置,就可以把MDAC也打包.
使用 Setup 项目安装 MDAC
1.确保 Visual Studio .NET 框架引导程序插件已安装。
2.在 Solution Explorer 中选择 Setup 项目。
从 View 菜单指向 Editor,并选择 Launch Conditions(启动条件)。
3.选择 Requirements on Target Machine(搜索目标计算机) 节点。
从 Action 菜单,选择 Add Registry Launch Condition(添加注册表搜索)。
4.选择 Search for RegistryEntry1 节点。在 Properties 窗口中,
选择 RegKey 属性,并键入 Software/Microsoft/DataAccess。
5.选择 Root 属性,并选择 vsdrrHKLM。
6.选择 Value 属性,并键入 FullInstallVer。
7.选择 Property 属性,并键入 MDACSEARCH。
8.在 Launch Conditions Editor(启动条件) 中,添加Condition1 节点。
选择 Condition1 节点,在 Properties 窗口中,选择 Condition 属性,并选择 MDACSEARCH>="2.6"。
9.在 Solution Explorer 中选择 Setup 项目。在 Project 菜单上,选择 Properties。
10.将 Bootstrapper 属性设置为 Windows Installer Bootstrapper(Windows 安装引导程序)。
编译 Setup 项目时,.NET 框架可重新分发软件包和 MDAC 将同时与该 Setup.exe 一起打包。