.Net应用程序发布问题的最新解决方案

如果安装有VS2003,请首先下载一个这个:
http://www.microsoft.com/downloads/details.aspx?familyid=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=en(英文的)
安装好后,再看这两个(中文的):
http://support.microsoft.com/?scid=kb;zh-cn;307353&spid=3040&sid=global
http://support.microsoft.com/kb/307358

当然还有前两天我写的这个:
http://blog.csdn.net/johnsuna/archive/2004/12/19/221618.aspx(主要是看卸载及快捷方式的建立问题了)

打开VS2003,新建安装和布署项目,取名为你的程序名称,我选择的是“安装向导”,操作步骤与http://blog.csdn.net/johnsuna/archive/2004/12/19/221618.aspx的操作类似,这下不同的是向导结束之后。
在应用程序文件夹中加入你的自定义ICO,这个ICO将决定你的应用程序显示图标了,同时包括快捷方式的图标。
在右边“解决方案资源管理器”中,点击你的解决方案名称(即第二行),此时在属性栏中会显示出“XXX部署项目属性”,在第一个AddRemoveProgramsIcon属性后“浏览”到你的ICO图标,接着在下面Author输入作者名,也就是你的名字,其他Localization是语言属性,Manufacturer,ProductName的属性将是用户在安装时默认设置的文件夹路径一部分了,设置Title为你的应用程序标题名称。
这里重点讲解如何创建快捷方式的图标:
点击左边的应用程序文件夹后,中间一栏中,将出现你已加入的应用程序集名称(如果没有的话,请按右键添加)。右击“创建XXX.exe的快捷方式”,再重命名为你的快捷方式名称,再点中它,在右边属性中有一个Icon属性栏,“浏览”,加上你的Ico图标,根据你的需要进行其它设置。最后,将你的快捷移动到用户的“程序”菜单栏中,这时你已建立用户程序菜单中的快捷方式了。
同样重复类似步骤完成“用户桌面”快捷方式的设置。(可惜,VS中无法直接复制、粘贴!)
如需要创建卸载快捷,请看我前两天写的这个东东:http://blog.csdn.net/johnsuna/archive/2004/12/19/221618.aspx,步骤都差不多。

最后当然就是“生成”-“生成你的XXXX项目”了。
想看看效果?这里有我的两个小工具:http://www.qqaa.net/download/(下载下来安装一下就知道怎么回事了,呵呵)

享受你的成功喜悦吧!

打开你的生成结果,查看一下,多了些什么?嘿嘿,自动将dotnetfx.exe加上了,还有在用户安装时会自动检查是否安装.Net框架,如果没有安装,则自动开始安装,然后再安装你的应用程序。

这下子够方便了吧?(以前我们的安装都是要到处想办法的,什么使用Unmanage C++呀,或是下载一个其他打包的东东啦,现在不用了!感觉好多了)

---------------------------------------------------------------------------------------------------------
<script type="text/javascript"> function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();} </script> 
这几天写了两个小工具,一个是图片自动浏览器,另一个是批量文件名修改器。(如你感兴趣,在这里 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,再点击你的应用程序进行运行即可。

大功告成!
========================================
打包的具体操作步骤(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 一起打包。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值