(转) .net web项目的安装制作

2023-11-03

(原 http://blog.csdn.net/houlinghouling/archive/2005/06/17/396338.aspx)

一、创建基本安装部署项目

1.         在解决方案资源管理器,右击解决方案à添加à新建项目à安装部署项目àWeb安装项目,例如命名为WebSetup。

2.         右击WebSetup项目à视图à文件系统。

(1)添加你所需要安装的Web程序(例如:WebApp)。在文件系统中右击Web应用程序文件夹à项目输出à选择WebApp,同时选种主输出何内容输出。

(2)添加相关的文件,例如.jpg 、.xml等文件(根据帮助可知这些文件无法自动添加到安装文件中),注意:原文件怎么样存放的,添加时也要以同样的文件夹存放。

例如,原文件存放在//aa/cc/bb.txt,则添加文件bb.txt时也应如此,右击web应用程序文件夹à添加web文件夹(命名为aa)à右击aaà添加web文件夹(命名为cc)à右击ccà添加文件(bb.txt).

3.         右击WebSetup项目à视图à用户界面。

1)        添加你所需要的界面。安装à启动à添加对话框à文本框(A),如果添加了文本框则必须要上移(右击要上移的文本框à上移)到安装地址之上。

2)        如果有许可协议对话框,则在文件系统中要添加一个.rtf格式的文件

注意改文件一定要时通过word另存为.rtf格式得到,不可以通过记事本创建文件后把扩展名改为.rtf而得到,那样将不显示许可协议),右击许可西医对话框à属性à把licenseFile属性选为你所要添加的许可协议文件。

(属性BannerBitmap 安装对话框中的图片;Sunken 是否凹凸显示。其他对话框相同)

以上是安装文件制作的基本过程。如果要安装数据库,和用户自定义的一些操作如下:
二、添加自定义操作----安装数据库
1)        在用户界面添à右击à添加对话框文本框(A)如果添加了文本框则必须要上移(右击要上移的文本框à上移)到安装地址之上。
2)        如果只安装一个数据库就把其Edit2Visible,Edit3Visible,Edit4Visible设置为false.把Edit1property定义一个变量名,例如PARA1。  
 3) 自定义用户操作,在资源管理器界面右击资源管理器à新建àC#(也可以是VB.NET),选择类库,命名为WebInstall 。
 4) 新建项目会自动生成一个class1.cs文件,把次文件删除。右击WebInstall添加新项à安装类,命名为Install.cs。
5)右击Install.csà视图设计界面,然后在服务器资源管理器中添加数据库master的连接,添加好后把这个连接拖到Install的设计界面。

6)在Install.cs文件中添加以下代码

       注:要添加应用添加应用

using System.Reflection;

using System.Data;

using System.Data.SqlClient;

using System.IO;

安装数据库代码

    ///<summary>

        ///获得配置文件中嵌入的文本文件

        ///</summary>

        ///<param name="Name">文件名</param>

        ///<returns></returns>

        private string GetSql(string Name)

        {          

            Assembly Asm = Assembly.GetExecutingAssembly();

            Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name);

            StreamReader reader = new StreamReader(strm);

            return reader.ReadToEnd();

        }

 

        ///<summary>

        ///指定的数据库执行SQL语句

        ///</summary>

        ///<param name="DatabaseName">数据库名</param>

        ///<param name="sqlstring">SQL语句</param>

        ///<returns></returns>

        private void ExecuteSql(string DataBaseName,string sqlstring)

        {

            System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(sqlstring,sqlConn);

 

            Command.Connection.Open();

            Command.Connection.ChangeDatabase(DataBaseName);

            try

            {

                Command.ExecuteNonQuery();

            }

            finally

            {

                Command.Connection.Close();

            }

 

        }

 

        ///<summary>

        ///创建数据库及数据库表

        ///</summary>

        ///<param name="DBName">数据库名</param>

        ///<param name="assemblyName">配件中数据库脚本资源的名称</param>

        ///<returns></returns>

        protected bool CreateDBAndTable(string DBName)

        {

            bool Restult = false;

            try

            {

                    ExecuteSql("master","CREATE DATABASE " + DBName);

                    ExecuteSql(DBName,GetSql("bbssql.txt"));

                    Restult = true;

           

            }      

            catch(Exception ex)

            {

//次段代码为调试用可以不添加

 

                StreamWriter sw = new StreamWriter(@"c:/SrInforSys.txt");

                sw.WriteLine("[SrInforSys案装错误]");

                sw.WriteLine(ex.Message.ToString());               

                sw.Close();                    

    }

            return Restult;

        }

       

           

        ///<summary>

        ///安装数据库

        ///</summary>

        ///<param name="stateSaver"></param>

        public override void Install(IDictionary stateSaver)

        {

            base.Install (stateSaver);

            if(!CreateDBAndTable(this.Context.Parameters["dbname1"].ToString()))

                throw new ApplicationException("创建数据库时出现严重错误!");

        }

在添加安装数据库时一定要有创建数据库的脚本,并且把它存为.txt文件添加到WebInstall项目中了,右击该文件(例如,database.txt)à属性à生成操作,该为嵌入资源(这点很中要)

7)生成WebInstall.dll文件。在解决方案资源管理器中右击àWebSetup项目à视图à在文件系统,右击Web应用程序文件夹à添加à项目输出à选择WebInstall(主输出)à确定

8)在解决方案资源管理器中右击àWebSetup项目à视图à自定义操作,在自定义操作界面区中右击安装à添加自定义操作à在Web应用程序文件夹à主输出来自WebInstall(活动)

添加完后右击主输出来自WebInstall(活动)à属性,把customeActionData设置为/dbname=[PARA1](此处的dbname为要接受的参数名,PARA1就是前面添加的文本框中Edit1property)。

9)编译WebSetup程序就可以了。

如果有两个或者多个数据库时,就把文本框的其他输入框设置为true(Edit2Visible, Edit3Visible , Edit4Visible),并且在自定义操作中把customeActionData属性改为/dbname1=[PARA1] /dbname2=[PARA2] /dbname3=[PARA3] /dbname4=[PARA4](有几个写几个)中间必须用一个空格分隔.

三、添加启动条件

在安装我们做好的程序总是要有一些启动条件的,例如必须有.net framework, SQL等。以下就以这SQL为例子

1)在解决方案资源管理器中右击àWebSetup项目à视图à启动条件à目标计算机上的要求à添加注册表启动条件à把名字改为search of SQLà属性,更改其属性
Property----------------SEARCHOFSQL
RegKey----------------SOFTWARE/Microsoft/MSSQLServer/Setup(指定要搜索的表项 )
Root--------------------vsdrrHKLM(指定要搜索的注册表根)
Value-------------------SQLPath(要搜索的注册表值)
2)在启动条件界面,右击启动条件à添加启动条件命名为SQL Server,更改属性
Condition--------------- SEARCHOFSQL
Message-----------------您本机上没有SQL Server 2000,请先安装!

如果添加其他的启动条件类似。

四、卸载程序

1)在WebInstall项目中的Install.cs中添加如下代码

private bool DeleteDatabase()

         {

              try

              {   

                   ExecuteSql(此方法就时前面案扎数据库的方法)("master","USE MASTER IF EXISTS (SELECT NAME FROM SYSDATABASES WHERE NAME=aa) DROP DATABASE aa");

                   return true;

              }

              catch

              {

                   return false;

              }

         }       

public override void Uninstall(IDictionary savedState)

         {

              if (savedState == null)

                   throw new ApplicationException("未能卸载!");

              else

              {

                   base.Uninstall (savedState);

                   if(!DeleteDatabase())

                       throw new ApplicationException("卸载过程中发生错误,未能卸载!");

              }       

         }

2)WebSetup项目的自定义操作中,右击卸载à添加自定义操作à在Web应用程序文件夹à主输出来自WebInstall(活动)

 

五、添加删除垃圾文件

这一点不一定用的到,不过有一些老板认为做处来的安装程序太小了给用户看不时很好就添加一些垃圾文件,让安装程序变大点,安装完后又删除。

在WebInstall项目中的Install.cs中添加如下代码

 

     private void DeleteFile()

         {

              string stLocation;

              Assembly asm = Assembly.GetExecutingAssembly();

              stLocation = asm.Location;      

              stLocation = stLocation.Substring(0,stLocation.LastIndexOf("//")) +"//要删除的文件名";

              System.IO.File.Delete(stLocation);                

         }

(此文件事先添加到Web应用程序文件夹下)

DeleteFile()方法添加到 public override void Install(IDictionary stateSaver)中即可。

 

 
五、把.NET程序部署到没有安装.NET Framwork的机器上 http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/deployNETApp.mspx
在微软官方网站下载Microsoft Visual Studio .NET 2003 引导程序插件
文件名叫: PluginInstaller.msi

下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=zh-cn

你安装了这个插件然后用IDE自带的安装部署即可,他会在你的安装包里另加三个文件:MDAC 2.8 和 .NetFramework 和中文语言包,并且自动判断系统是否已安装框架。
Microsoft Visual Studio .NET 2003制作安装程序  
部署ASP.NET的三大技术
在制作安装程序,不知如何才能将数据库结构及数据导入,高分求Duwamish7制作打包部署程序的源码及方法  
项目打包时自定义安装属性,如数据库名等  
用Vs.net制作安装程序
自动安装SQL Server数据库  
安装程序时读取路径的问题  
asp.net打包的问题(1.修改文件夹访问权限;2.设置起始页  

http://community.csdn.net/Expert/topic/3380/3380589.xml?temp=8.585757E-02

 

 

 

 

 

 

 

 

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(转) .net web项目的安装制作 的相关文章

随机推荐

  • 数据分析行业,主要有哪些基本职位,具体的职责是什么?

    1 数据跟踪员 机械拷贝看到的数据 很少处理数据 虽然这个工作的人还不能称作数据分析师 但是往往作这样工作的人还都自称是数据分析师 这样的人 只能通过 系统看到有限的数据 并且很少去处理数据 甚至不理解数据的由来和含义 只是机械的把自己看到
  • 21届毕业生,想做软件测试,没工作经验而且已经毕业,怎么找软件测试工作?

    如果说你是上面现状去找软件测试工作 而且居然还找到了 那么可能会是如下几种情况 1 该公司对软件质量要求很低 随便来个会点点点的 能够检查功能是否正常即可 毕竟我是真遇到过一个CEO说 软件测试很难吗 我都能测试啊 没必要找测试人员 开发完
  • 不对等的爱情该不该放弃

    刚好两个人对爱情都有勇气全力以赴是多么难得的巧合 每个人都有自己的过往 我期望我们在最适当的时候相遇 一个投入的人碰上一个疏离的人 结局必定黯然 下一次 我希望我们相遇的时间会好一点 爱情经常出现一种奇怪的模式 你很用力的去爱一个人 对方却
  • jmeter JDBC request提示“Cannot convert value '0000-00-00 00:00:00' from column 6 to TIMESTAMP.”

    在学习jmeter数据库相关的过程中 在请求数据库时报错 Cannot convert value 0000 00 00 00 00 00 from column 6 to TIMESTAMP 解决方法 更改连接数据库方式 在连接 jdbc
  • C++基础入门教程

    1 C 初识 1 1 第一个C 程序 编写一个C 程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1 1 1 创建项目 Visual Studio是我们用来编写C 程序的主要工具 我们先将它打开 1 1 2 创建文件 右键源文
  • 获取本地硬盘信息

    using System using System Runtime InteropServices using System Text namespace driverId Serializable public struct HardDi
  • JS-语法进阶

    JS 语法进阶 三元运算符 类数组对象
  • 蓝桥杯 51单片机 AT24C02

    工作电压为1 8v 6v 第7引脚 WP 接地时允许正常读写 24C02设备地址包括固定部分和可编程部分 编程部分由A2 A1 A0三个硬件引脚来控制 设备地址最后一位用于设置数据传输方向 读 写 在IIC总线协议中 设备地址是起始信号后第
  • git分支管理策略

    1 总览 git 的分支整体预览图如下 从上图可以看到主要包含下面几个分支 master git默认主分支 这里不作操作 stable 稳定分支 替代master 主要用来版本发布 develop 日常开发分支 该分支正常保存了开发的最新代
  • 黑客自学路线

    谈起黑客 可能各位都会想到 盗号 其实不尽然 黑客是一群喜爱研究技术的群体 在黑客圈中 一般分为三大圈 娱乐圈 技术圈 职业圈 娱乐圈 主要是初中生和高中生较多 玩网恋 人气 空间 建站收徒玩赚钱 技术高的也是有的 只是很少见 技术圈 这个
  • Shader开发之三大着色器

    Shader开发之三大着色器 固定功能管线着色器Fixed Function Shaders 固定功能管线着色器的关键代码一般都在Pass的材质设置Material 和纹理设置SetTexture 部分 Shader Custom Vert
  • Anaconda3-5.1.0下载和安装

    下载安装anaconda的小插曲 1 在官网上找到windows的32位的下载 毕竟是八年前的老本了 另一个本装的64位 结果网站上出现问题 没有成功下载 2 万能的网络 终于找到可以下载的清华镜像地址 Index of anaconda
  • 如何阅读源代码

    我们在写程式时 有不少时间都是在看别人的代码 例如看小组的代码 看小组整合的守则 若一开始没规划怎么看 就会 噜看噜苦 台语 不管是参考也好 从开源抓下来研究也好 为了了解箇中含意 在有限的时间下 不免会对庞大的源代码解读感到压力 网路上有
  • Win11 安装Docker Desktop报错:Update the WSL kernel by running “wsl --update“ or follow instructions

    这个问题解决了一整个下午 看了无数的解决方案 最后找到了最有效的解决方案 总结如下 安装Docker Desktop之后 打开出现这样的问题 根据提示在powershell通过 wsl update 命令 出现 error 那么可以试试下面
  • 计算机视觉技术与应用综述

    引用自 无人系统之 眼 计算机视觉技术与应用浅析 张 丹 单海军 王 哲 吴陈炜 一 前言 近年来 人工智能和深度学习获得突破 成为了大众关注的焦点 如LeCun Y Bengio Y Hinton G等 1 提出的深度卷积网络在图像识别领
  • 一篇文章搞定Python多进程(这才是正确的Python多进程的打开方式)

    1 Python多进程模块 Python中的多进程是通过multiprocessing包来实现的 和多线程的threading Thread差不多 它可以利用multiprocessing Process对象来创建一个进程对象 这个进程对象
  • python3 [爬虫入门实战] 爬虫之selenium 模拟QQ登陆抓取好友说说内容(暂留)

    很遗憾 部分数据有些问题 不过还是可以进行爬取出来的 先贴上源代码 encoding utf8 from selenium import webdriver import re from bs4 import BeautifulSoup f
  • 二分字符串,没有连续的 1,使用递归思路,以及算法改进探讨

    今天聊一个递归解决二分字符串的问题 问题 给定正整数 N 计算所有长度为 N 但没有连续 1 的二分字符 比如 N 2 时 输出为 00 01 10 当 N 3 时 输出为 000 001 010 100 101 这个问题我在网上简单搜了一
  • linux 修改文件用户组和所有者

    目录 1 linux下修改文件用户组 2 linux下修改文件所有者 3 linux下同时修改文件所有者和用户组 1 linux下修改文件用户组 chgrp change group的简写 修改文件所属的用户组 chgrp 用户组名 文件名
  • (转) .net web项目的安装制作

    原 http blog csdn net houlinghouling archive 2005 06 17 396338 aspx 一 创建基本安装部署项目 1 在解决方案资源管理器 右击解决方案 添加 新建项目 安装部署项目 Web安装