C#项目打包
项目打包总结
实现功能:根据用户自定扮蠢义指定的数据库名及其他一些文件的顷缺陵安装如(iewebcontrols)
步骤:
新建一项目:visual C#项目 , 选中类库模板 ,如命名为myInstall,在此项目下面添加一新项:选择安装程序类(Installer1.cs),在此我采用默认名。此安装类库将实现数据库的安装及其他一些文件的安装。
在installer1.cs里我们将重写安装类的方法:见参考1
InstallCommitRollback Uninstall
在install方法中来实现自定义的安装:
首先我们要得到一些用户变量(用户在安装时所做的 *** 作,如数据库管理帐号等)
对于这些变量我们可以通过上下文环境来得到this.Context.Parameters["DataBaseName"](在安装项目里将会进行设置)
在此我们一共得到五个变量。安装数据库的服务器,指定的数据库名,数据库管理员帐号,密码。以及数据库备份文件。
我们来看一下具体的代码,很简单:)
private void InstallDateBase()
{
System.Reflection.Assembly Asm
// Asm= System.Reflection.Assembly.GetExecutingAssembly()
//System.IO.FileInfo FileInfo = new System.IO.FileInfo(Asm.Location)
//也可以得到当前安装的目录,如wwwroot目录下myweb\你的安装工程名.dll
//下面是进行数据库连线及命令
SqlConnection sqlConnection1 = new SqlConnection()
string DBName = this.Context.Parameters["DataBaseName"]
string DBServer = this.Context.Parameters["ServerName"]
string DBUser = this.Context.Parameters["InStallAdmin"]
string DBKey = this.Context.Parameters["InstallPassword"]
string dir=this.Context.Parameters["dir"]
StreamWriter ss=new StreamWriter(@"c:\aaa.txt",true)
ss.WriteLine("data source=" + DBName + "database=masteruid=" + DBUser +"password=" + DBKey)
ss.Close()
string CONSTR = "data source=" + DBServer +"database=masteruid=" + DBUser +"password=" + DBKey
sqlConnection1.ConnectionString = CONSTR
//数据库将安装到system32下
string CurDir = Directory.GetCurrentDirectory() + @"\TestData\database"
if(!Directory.Exists(CurDir))//不存在就新建一个
{
Directory.CreateDirectory(CurDir)
}
string MSQL = "RESTORE DATABASE " + DBName +
" FROM DISK = '"雀戚 + dir + @"\database\myDataBase.bak' " +
" WITH MOVE 'myDate_dat' TO '" + CurDir + @"\" + DBName + ".mdf', " +
" MOVE 'myDate_log' TO '" + CurDir + @"\" + DBName + ".ldf' "
SqlCommand cmd = new SqlCommand(MSQL,sqlConnection1)
cmd.Connection.Open()
cmd.ExecuteNonQuery()
cmd.Connection.Close()
if(sqlConnection1.State == ConnectionState.Open)
{
sqlConnection1.Close()
}
//安装TreeView
ProcessStartInfo psi = new ProcessStartInfo()
psi.WorkingDirectory = dir+"\\database"
psi.FileName = dir + @"\database\iewebcontrols.msi "
psi.UseShellExecute=true//msi文件,如是exe不用设
Process.Start(psi)
最好不把Framework1.1打包进去。应该和安装程序放在一起。然后把下载Framework1.1的地址指向这个文件。到于顶替局晌,你可以在安装文件里添加一好喊个文件夹,名字和你树所在的文件夹一样,然后把文桐袜锋件全部添加进去,目标目录设置一下就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)