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

(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();
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值