日期:2011-07-10  浏览次数:20493 次

可参考:  
  打包的具体操作步骤(VS.net2003+win2K):  
   
  1)新建“安装和部署项目”-->“安装向导”  
   
  2)选择菜单中   项目-->添加-->文件(这里选“创建用于windows应用程序.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  
            &n