zoukankan      html  css  js  c++  java
  • VS 安装项目 :通过文本框得到用户输入 以及 安装后运行某程序(如打开C:\\a.html)

    1.通过VS 建立一个Web站点 并编辑

    2.在解决方案 加入 新建项目-安装项目(如Setup1)

    3.通过 安装项目(如Setup1) 的右键-添加-项目输出
      将第1步中建立的内容文件加入

    4.通过 解决方案 加入 一个类库

    5.将类库自动生成的Class.cs删除
      加入 “安装程序类”(如Installer1.cs)

    6.在这个Installer1.cs中 可以对一些安装事件 进行重载
      如
      protected override void OnAfterInstall(System.Collections.IDictionary savedState)
      {
          base.OnAfterInstall(savedState);
          System.IO.File.Create("C:\\test.txt");
      }
    7.在安装项目Setup1中通过
      右键-视图-用户界面-启动 加入"文本框"

    8.设置该 文本框 的属性:
      例如:
      BodyText :数据库相关信息:

      Edit1Label : 数据服务器IP
      Edit1Property:EDITA1
      Edit1Value:
      Edit1Visible:True

      Edit2Label : 数据库名称
      Edit2Property:EDITA2
      Edit2Value:
      Edit2Visible:True

      Edit3Label : 登陆用户
      Edit3Property:EDITA3
      Edit3Value:
      Edit3Visible:True

    9.在安装项目Setup1中通过
      右键-视图-自定义操作-安装 添加“自定义操作”
      选择主输出来自ClassLibrary1(活动)
      即将第4步所加入的类库的主输出加入

    10. 在自定义操作的安装下 的 刚才所加入 的
       主输出来自ClassLibrary1(活动)
       右键 - 属性 - CustomActionData
       输入相关内容 如
       /DBIP=[EDITA1] /DBNAME=[EDITA2]

    11. 编辑类库下的Installer1.cs文件的代码
       如 得到 刚才用户在对话框处的输入
       public override void Install(System.Collections.IDictionary stateSaver)
       {
           base.Install(stateSaver);
           string strDBIP = this.Context.Parameters["DBIP"];
           string strDBName = this.Context.Parameters["DBNAME"];
           ......         
       }

    12.安装完成前 打开某文件
       protected override void OnCommitted(System.Collections.IDictionary savedState)
       {
           base.OnCommitted(savedState);
           System.Diagnostics.Process a = new System.Diagnostics.Process();
           a.StartInfo.FileName = "C:\\a.html";
           a.Start();
       }

    13.编译类库 编译安装项目
       利用生成的安装项目 进行相关安装

    以上内容 详细可参阅VS相关帮助文档

  • 相关阅读:
    工资到帐的快乐排名第四
    如何成为一个具有批判性思维的人?
    别让千里马被驴踢死
    接口协议抓包与分析
    Qt + ffmpeg+SDl (转)
    各种流媒体服务器的架设(二)
    memcpy(转)
    java之public class和class声明区别详解 (转)
    cin、cin.get()、cin.getline()、getline()、gets()等函数的用法 (转)
    const_iterator 与 const iterator
  • 原文地址:https://www.cnblogs.com/freeliver54/p/674417.html
Copyright © 2011-2022 走看看