本文主要是介绍net制作安装程序总结(WinForm,WebForm) 整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、创建基本安装部署项目
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),如果添加了文本框则必须要上移(右击要上移的文本框à上移)到安装地址之上。
(注意:改文件一定要时通过word另存为.rtf格式得到,不可以通过记事本创建文件后把扩展名改为.rtf而得到,那样将不显示许可协议),右击许可西医对话框à属性à把licenseFile属性选为你所要添加的许可协议文件。
(属性BannerBitmap 安装对话框中的图片;Sunken 是否凹凸显示。其他对话框相同)
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)在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)中即可。
下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=zh-cn
此文章转自CSDN,此处仅为收集。
这篇关于net制作安装程序总结(WinForm,WebForm) 整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!