日期:2011-07-10 浏览次数:20634 次
可参考:   
  打包的具体操作步骤(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