最近公司要求OA要以安装的形式,方便实施人员安装到客户机器上。

之前是在好几年前用VS2003的打包过Web项目,不过早已忘却。

所以第一个想法就是使用搜索引擎查找,网上也有许多介绍,不过有些讲的比较粗,看不太明白。还是动手实践一下,或许会清爽明朗。

 

在测试Web项目中新建一个Web安装项目,如下图:

image 


在新建的安装项目,右击项目如下图:

image

 

选择项目输出,选择要输出的项目,如下图:

image

我选一个Web网站,则只有内容输出选项,选中内容文件选择确定。

如果选Web项目,则如下图:

image

 

右击项目点击属性,则出现如下图:

image

再点击系统必备:

image

这些选择打包程序需要包含的组件,主要是我们需要.Net Framework组件,我们需要打包进来。

这里将.Net Framework 2.0(X86)打钩,并且在下面指定系统必备组件的安装位置选择第二项,这样就打钩的组件就会跟进安装包了。

第一项则是组件从微软网站上下载,第三项则是指定自定义位置。

 

点击确定,接下来,我们右击项目,如下图:

image

点击启动条件,如下图:

image

我们可以看到启动条件,我们来看看IIS条件,右击IIS条件,查看属性窗口,如下图:

image

 

这里可以看到设置条件,IISVERSION >= "#5"表示IIS版本需要5.0以上,如果需要6.0以上则是IISVERSION >= "#6"。

 

下面我们来设置安装界面。右击项目如下图:

image

选择点击用户界面,如下图:

image

这里我已经添加了三个步骤,分别是许可协议、客户信息、文本框(A)这三个。

image

通过右击启动,点击添加对话框,如下图:

image

来选择我们需要的步骤。

 

右击许可协议步骤,查看属性如下图:

image

我们知道在安装很多软件的时候都会有一步是许可协议,然后让我们点击同意,然后再下一步,就是这里啦。

我们这里添加了一个license.rtf文件到安装项目,这里就可以选择这个文件了。

image

 

由于在安装过程也需要设置数据库,所以我们还需要让安装用户在安装过程中输入数据库服务器信息,这里就是文本框(A)这个步骤啦。右击步骤查看属性窗口如下图:

image

这里有四个文本框可以使用,我们只需要三个数据库服务器、帐号、密码,所以第四个Visible设置为false。

 

由于需要配置数据库,则我们需要再建一个项目,新建一个类库项目,然后添加一个安装类,如下图:

image

生成一个安装类如下图,是一个继承Installer类的类。

image

 

然后我们需要在安装类中编写代码啦。

我们重写Install方法:

public override void Install(IDictionary stateSaver)

这里就是我们需要写配置数据库信息。

 

然后我们在安装项目中添加这个项目,如下图:

image

然后右击安装项目,如下图:

image

选择自定义操作,则出现自定义操作界面如下图:

image

然后我们在安装的操作中添加刚才的新建的项目,右击安装,添加自定义操作,如下图:

image

选中并点击确定。接下来我们需要在安装过程传递输入的数据传递这个项目中,右击安装下面的刚添加的主输出,如下图:

image

属性框中的CustomActionData就是指定要传递到安装程序的自定义数据。

 

然后我们再回到新建的那个安装类,在Install方法就可以接收安装过程中输出的数据库信息,如下:

public override void Install(IDictionary stateSaver)
{
    base.Install(stateSaver);
    string databaseServer = Context.Parameters["server"].ToString();
    string userName = Context.Parameters["user"].ToString();
    string userPass = Context.Parameters["pwd"].ToString();
    string targetdir = Context.Parameters["targetdir"].ToString();

    //这里操作添加数据库,只要执行创建数据库的脚本就可以了。


    //这个是测试在安装目录下添加接收到的用户填写的数据库信息
    File.WriteAllText(Path.Combine(targetdir, "log.txt"), databaseServer + "/n/r" + userName + "/n/r" + userPass);
}

这里Context.Parameters["server"]的Server和上面设置CustomActionData是对应的。

 

这样就完成了安装包的制作了,编译生成一下,我们测试一下安装包是否真的有效。

下面接一下制作完安装过程:

image

image

image

image

image

image

image

image

安装过程就这么多了。

下面我们来看看是否已经安装成功,如下图:

image

说明Web网站已经成功被安装到虚拟目录下了。

 

下载示例

posted on 2010-09-10 21:49  steven hu  阅读(20157)  评论(81编辑  收藏  举报