街頭莮炷角 发表于 2014-8-25 10:50:00

这个东东有没有人能成功弄出来的,我做的老出错 不是找不到压缩包就是不能指定路(1)


打包安装程序的制作选择性还很多的,有installshield,wise installer,inno setup这几个做打包安装项目都是很强大的,要搞出界面大气个性化的安装,还是得用这几个才行,我这篇说的是.NET自带的安装项目打包WEB系统的,.NET打包安装项目虽然傻傻的,也比较丑,但是搭建安装项目快速也能满足总体的要求,如果没有足够的时间研究重量级的安装工具,短时间内用.NET自带的安装项目也是一个良好的选择。网上有很多关于用.NET打包WEB项目的文章,大体是那样的,但不是很全面,有个别细节并没有涉及,先说下这个安装打包项目的主要功能:      一、安装前系统检测             主要检测SQL SERVER是否安装,站点名称和端口号是否重复等,framework自动检测没有的话先安装,本身自带就有此功能,IIS是必须要求的,不然没法创建站点。  二、项目文件安装到指定文件夹并根据安装时的数据库配置修改webconfig连接      三、附加数据库         打包时可以把mdf文件放到WEB项目文件夹下,生成安装文件时就会自动打包进去,安装时执行附加即可。      四、注册COM组件(如果项目中涉及到COM的话)      五、创建WEB站点      六 、创建虚拟目录         这里的虚拟目前是根据打包的项目需要进行的,因为有的WEB项目结构比较复杂,比如一个系统除了本身项目的发布文件,还有另外的独立特殊功能的项目作为虚拟目录的形式一起运行,类似于插拔式的插件一样,需要的话直接拷贝到站点下,设置虚拟目录,系统菜单做好链接指向其页面就可以了。   七、创建桌面快捷方式         比如可以把系统的登录页面或其它起始页作为安装时指定的快捷方式   八、项目卸载          项目的卸载主要包括删除项目文件,卸载附加的数据库,删除站点及桌面快捷方式等
       安装WEB项目的前提条件是需要在用户电脑上先安装SQL SERVER数据库(或其它数据库)和IIS信息管理器。   1)安装项目主要涉及的是安装类里面的操作,包括安装和卸载的方法重写等,安装时需要记录用户通过安装界面输入的信息,这里我们可以用XML文件作为记录配置文件,主要是在卸载的时候需要用到用户输入的相关信息,数据库连接串的记录操作如下:
/// <summary>
      /// 获取数据库登录连接字符串
      /// </summary>
      /// <param name="databasename">数据库名称</param>
      /// <returns></returns>
      private string GetConnectionString(string databasename)
      {
            string ConnStr = "server=" + Context.Parameters["server"].ToString() + ";database=" + (string.IsNullOrEmpty(databasename) ? "master" : databasename) + ";uid=" + Context.Parameters["user"].ToString() + ";pwd=" + Context.Parameters["pwd"].ToString();
            if (string.IsNullOrEmpty(databasename)) //将连接串写入XML文件,供卸载操作时读取
            {
                dbpath = Path.Combine(this.Context.Parameters["installdir"].ToString(), "dbconfig.xml");
                OperateXML.UpdateXMLNode(dbpath, "ConnString", ConnStr);
            }
            else
            {
                dbpath = Path.Combine(this.Context.Parameters["installdir"].ToString(), "dbconfig.xml");
                OperateXML.UpdateXMLNode(dbpath, "DbName", databasename);
            }
            return ConnStr;
      }



页: [1]
查看完整版本: 这个东东有没有人能成功弄出来的,我做的老出错 不是找不到压缩包就是不能指定路(1)