Web安装程序不能选择安装目录问题(2)

类别:Asp 点击:0 评论:0 推荐:
(1)main()函数   /// <summary>
  /// 应用程序的主入口点。
  /// 参数 string[] args :
  /// args[0] :物理路径
  ///
  ///制作安装盘说明: [TARGETDIR]指当前安装路径
  /// (1)在“自定义操作===>安装”--->属性
  /// (2)属性 Arguments : [TARGETDIR]
  /// (3)属性 InstallerClass : false
  ///
  ///为什么要使用setVDir.ini
  /// 因为在进行安装Web应用程序时,Environment.CurrentDirectory取得的
  /// 当前目录是 C:\WINNT\system32 ,因为它运行在system32,而不是在安装目录运行
  /// 因此需要从Main()传入安装目录,把它临时写入setVDir.ini,在设置虚拟目录时从中读出
  ///</summary>
  [STAThread]
  static void Main(string[] args)
  {
    string iniFile;
    if (args.Length>0)
    {
      iniFile = Environment.CurrentDirectory+@"\setVDir.ini"; //C:\WINNT\system32\setVDir.ini
      if (!File.Exists(iniFile))
      {
        using (FileStream fs = File.Create(iniFile))
      {
        fs.Close();
      }
    }

    //当前安装路径 保存到 C:\WINNT\system32\setVDir.ini
    INIFile myINI = new INIFile(iniFile);
    myINI.IniWriteValue("MatNET","phyDirectory",args[0]);
    }

    Application.Run(new Form1());
  } (2)设置按钮事件   private void btOK_Click(object sender, System.EventArgs e)
  {
    string iniFile,webDir,phyDir;
    string sServer = "localhost";
    webDir = textBox1.Text.Trim(); //虚拟目录
    iniFile = Environment.CurrentDirectory+@"\setVDir.ini"; //C:\\WINNT\system32\setVDir.ini
    INIFile DirINI = new INIFile(iniFile);
    phyDir = DirINI.IniReadValue("MatNET","phyDirectory");  //读取Main()传入的安装目录

    IISManager iisMg = new IISManager(sServer);
    iisMg.Connect();

    if (iisMg.Exists(webDir))
    {
      MessageBox.Show("虚拟目录 [" +webDir+ "] 已经存在!");
      textBox1.Focus();
    }
    else
    {
      iisMg.get_AnonymousUser();
      string[] anonymousUser = new string[2];
      anonymousUser[0] = iisMg.AnonymousUserName ;
      anonymousUser[1] = iisMg.AnonymousUserPass ;

      VirtualDirectory newVirDir = new VirtualDirectory(webDir,phyDir,anonymousUser);
      if (iisMg.Create(newVirDir))
      {
        if (iniFile.Substring(iniFile.Length-1,1)=="\\")
          iniFile = phyDir+"mat3NET.ini";
        else
          iniFile = phyDir+@"\mat3NET.ini";

        if (!File.Exists(iniFile))
        {
          using (FileStream fs = File.Create(iniFile))
          {fs.Close();}
        }

        INIFile myINI = new INIFile(iniFile);

        myINI.IniWriteValue("MatNET","virtualDir",webDir);
        myINI.IniWriteValue("MatNET","serverIP","http://127.0.0.1/"+webDir+"/")
      }
      else
      {
        MessageBox.Show("[" +phyDir+ "]虚拟目录 [" +webDir+ "] 创建不成功!");
      }
    }
    iisMg.Close();
    Close();
  }

本文地址:http://com.8s8s.com/it/it7476.htm