1
配置:程序打包
部署:程序的安装
程序集:位于Bin目录下面,包含MSIL代码(DLL代码),元数据(类型的定义等),Mainfest(版本信息,安全信息等),
其它的资源和文件
2 发布的办法
1)直接的copy,不需要修改注册表,是绿色软件
2)利用 NET环境发布
项目--发布或右键
3)利用Web安装项目,这样你就可以把他考到光盘上。
在你要打包的项目下面,新建一个Web安装向导
需要做的
1)文件视图(发布包中要添加的文件)
2)注册表(把键值添加到注册文件,注意权限)
3)文件类型的添加(有些文件类型在系统里面没有,你需要添加新的类型)
4)自己设计安装界面
5)安装条件(Web安装需要IIS等)
检查是否包含NET环境,类继承System.Configuration.Install.Installer,重写Install
Public overide void Install(.....)
{
RegistryKey key=null;
key=Registry.LocalMachine.CreateSubKey("Software//Microsoft//.NETFrameWork//Policy//V2.0");
if(key==null||key.GetValue("3705")==Null)
{
Process pro=New Process();
pro.StartInfo.FileName="dotnetfx.exe";
pro.StartInfo.WindowStyle=ProcessWindowStyle.Hiddlen;
pro.Start();
pro.WaitForExit();
pro.Close();
}
}
//自动运行SQL语句,建立数据库
public override void Install(...)
{
//入口
pwd=this.Context.Parameter["pwd"];
Add
}
private void AddDB(string dbname)//增加数据库
{
try
{
ExecuteSql("master","Create Database"+dbname);
ExecuteSql(dnname,GetSql("sql.txt"));
}
catch
{
......
}
}
private void ExecuteSql(string dbname,string sql)
{
SqlConnection conn=new SqlConnection("userid=sa;pwd="+pwd";database=master;server=(local)");
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.Connection.Open();
cmd.Connection.ChangeDatabase(dbname);
try
{
cmd.executeNonQuery();
}
cacth
{
......
}
finally
{
conn.Close();
}
}
private string GetSql(string filename)
{
try
{
Assembly asm=Assembly.GetExecutionAssembly();
Stream strm=asm.getMainfestResourceStream(asm.getName().Name+"."+filename);
StreamReader sr=new StreamReader(strm);
return sr.ReadToEnd(0;
}
catch
{
......
}
}