zoukankan      html  css  js  c++  java
  • InstallShield 通过VBS操作IIS

    最近在做覆盖安装,不同安装包文件卸载时可以完美删除,只有Webservice不会删除,后来在帮助文档中发现这么一句话:

    If a Web site already exists, Virtual Directories tied to that Web site in the project will be installed under that Web site. However, none of the properties set for that Web site in the InstallShield interface will be applied to the Web site in that case.

    既然这样,干脆自己用脚本删除对应的Webservice。

    Installshield 2009 , Installscript Project 工程

    首先建立一个脚本:

    在此脚本文件内编写一下脚本:

    Code
     1 //////////////////////////////////////////////////////////////////////
     2 // InstallScript 设置 IIS 脚本
     3 // 主要功能:通过使用VBS 查找、创建、更改、删除站点,
     4 //                         查找、创建、更改、删除虚拟目录           
     5 
     6 //prototype FindWebSite(STRING,STRING,NUMBER); 
     7 prototype FindWebVirtualDir(string);
     8 prototype DelWebVirtualDir(string);       
     9 
    10 //*********************************************************
    11 //** FindWebVirtualDir  检查Webservice是否存在
    12 //** @param string      要查找的Webservice名称   
    13 //** @return            1 找到了指定的webservice;
    14 //**                       0 未找到指定的Webservice;                   
    15 //*********************************************************        
    16 function FindWebVirtualDir(strVirtualDirectoryName)    
    17 object objIIS,objVirtualDirectory; 
    18 number nvReturn;
    19 begin
    20      set  objIIS=CoGetObject("IIS://localhost/W3SVC/1/Root","");    
    21      if(IsObject(objIIS)) then   
    22          try
    23           set objVirtualDirectory = objIIS.Create("IISWebVirtualDir",strVirtualDirectoryName); 
    24           nvReturn=0;
    25         catch
    26           nvReturn=1;
    27         endcatch; 
    28      endif;
    29      return nvReturn;
    30 end;   
    31 //*********************************************************
    32 //** DelWebVirtualDir   删除指定的Webservice
    33 //** @param string      要删除的Webservice名称   
    34 //** @return            1 删除成功;
    35 //**                       0 未删除成功;                   
    36 //*********************************************************  
    37 function  DelWebVirtualDir(strVirtualDirectoryName)
    38 object objIIS,objVirtualDirectory; 
    39 number nvReturn;
    40 begin
    41      set  objIIS=CoGetObject("IIS://localhost/W3SVC/1/Root","");    
    42      if(IsObject(objIIS)) then   
    43          try      
    44           set objVirtualDirectory = objIIS.GetObject("IISWebVirtualDir",strVirtualDirectoryName);
    45           if(IsObject(objVirtualDirectory)) then
    46               objIIS.Delete("IIsObject",strVirtualDirectoryName);
    47                 nvReturn=1; 
    48           endif;   
    49         catch
    50           nvReturn=0;
    51         endcatch; 
    52      endif;
    53      return nvReturn;
    54 end;

    此脚本只是个例子,剩余功能填充即可。

    在Setup.Rul中调用函数:

    http://www.cnblogs.com/HeroBeast/archive/2009/03/06/1404791.html处学习,很全面

  • 相关阅读:
    IDEA最常用快捷键汇总+快速写出Main函数
    设计模式之代理模式
    Java多线程中join、yield、sleep方法详解
    git基础命令详解
    用友网络科技Java高级开发面试题(2019)
    Java内部类超详细总结(含代码示例)
    构造器中绝对绝对不能调用可被覆盖的方法
    写给小白看的Git的安装配置与使用
    Vue学习笔记5--前端工程化
    Vue学习笔记4--vue-router路由
  • 原文地址:https://www.cnblogs.com/zhulinyixuan/p/2986902.html
Copyright © 2011-2022 走看看