C#windows应用程序打包(VS2010+SQLServer2008)(二)
2014-11-24 13:16:48
·
作者:
·
浏览: 2
myCommand.ExecuteNonQuery();
MessageBox.Show("数据库安装成功!点击确定继续");//需Using System.Windows.Forms
}
catch (Exception e)
{
MessageBox.Show("数据库安装失败!" + e.Message + "\n\n" + "您可以手动附加数据");
System.Diagnostics.Process.Start(path);//打开安装目录
}
finally
{
myConn.Close();
}
}
//权限管理
private static void SetFullControl(string path)
{
FileInfo info = new FileInfo(path);
FileSecurity fs = info.GetAccessControl();
fs.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
info.SetAccessControl(fs);
}
//重载的Install函数
public override void Install(System.Collections.IDictionary stateSaver)
{
string server = this.Context.Parameters["server"];//服务器名称
string uid = this.Context.Parameters["user"];//SQlServer用户名
string pwd = this.Context.Parameters["pwd"];//密码
string path = this.Context.Parameters["targetdir"];//安装目录
string ch = path.Substring(path.Length - 1, 1);
if (ch == @"\") //对路径进行处理,判断末尾是否有'\'
path = path.Substring(0, path.Length - 1);//有则删掉
string strSql = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master";//连接数据库字符串
string DataName = @"StuBoardDB";//数据库名
string strMdf = path + @"XSJSGLXT.mdf";//MDF文件路径,这里需注意文件名要与刚添加的数据库文件名一样!
SetFullControl(strMdf); //设置权限为EveryOne
string strLdf = path + @"XSJSGLXT_log.ldf";//LDF文件路径
SetFullControl(strLdf); //设置权限为EveryOne
base.Install(stateSaver);
this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//开始创建数据库
}
}
}
可能你看到代码比较多,其实这些你都可以重用,你只需要改其中的一点点就行了。如下图(黑框里面的东西):你懂得。

第十五步:
好了,最后,生成安装包。

参考文献:宽田的博客园.c# winform 打包(带数据库安装)[CP/OL].http://www.cnblogs.com/scottckt/archive/2011/05/14/2046313.html,2011-05-14/2014-07-08
邢海芳的CSDN博客.VS2010 C/S模式winForm打包部署.详细![CP/OL].http://blog.csdn.net/xhf55555/article/details/7702212,2012-06-29/2014-07-08