VS2005 Web引用程序打包并安装数据库

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个解决方案中可能会包含多个类库项目和一个网站,打包过程如下:

1、在【解决方案资源管理器】中【右键-添加-新建项目】,左侧选择【其他类型项目】,右侧选择【安装项目】,如下图:

2、点击【确定】后,右侧【文件系统】选项卡中选择【应用程序文件夹】-【添加】-【项目输出】,类库项目选择添加【主输出】,网站选择添加【内容文件】

3、在网站的制作过程中可能用到一些其他的BLL组件,也需要添加进来,还是选择【应用程序文件夹】-【添加】-【程序集】,选择你网站BIN文件夹下的一些BLL

4、因为要带数据库带包,我是采用打包程序利用系统存储过程附加MDF和LDF 文件的方法,所以【应用程序文件夹】中还需要【添加-文件】,将数据库的MDF 和LDF文件添加进来,如果安装的需要在控制面板的添加删除程序列表中有图标的话,也需要将ICO图标文件添加进来。

5、设置安装项目的常用属性:

Author:作者

Manufactuer:公司

Title:安装程序的标题

AddRemoveProgramsIco:设置为添加进来的ICO文件

如果不带数据库安装的话,可以将安装项目直接生成就可以了,如果Debug设置为True,则生成的MSI文件在Debug文件夹中,如果为False,生成的MSI文件在Release文件夹中。

6、在【解决方案资源管理器】中,右键,添加【新建项目】-【Visual C#】-【类库】,建立数据库安装程序,类库建好后,将默认的Class1.cs文件删除,右键,添加【新建项】-【安装程序类】,下面主要是此类的代码。

7、安装程序类的代码:

1using ponentModel;

2using System.Configuration.Install;

3using System.Collections; //以下引入

4using System.Collections.Specialized;

5using System.Data;

6using System.Data.SqlClient;

7using System.Reflection;

8using System.Xml;

9

10namespace DbClass

11 {

12 [RunInstaller(true)]

13public partial class InstallDB : Installer

14 {

15///

16///必需的设计器变量,均来自于安装程序的“自定义操作”视图中的设置

17///

18private string hostname;

19private string username;

20private string userpassword;

21private string dbname;

22

23public InstallDB()

24 {

25 InitializeComponent();

26 }

27

28private string CreateSqlStr()

29 {

30string sqlstr = "";

31string datafile = Context.Parameters["installdir"] + @"FlowerShop.mdf";

32string logfile = Context.Parameters["installdir"] + @"FlowerShop_log.ldf";

33sqlstr = "EXEC sp_attach_db @dbname ='"+ Context.Parameters["dbname"] + "',@filename1='"+ datafile + "',@filename2='" + logfile + "'";

34return sqlstr;

35 }

36

37private void ExecuteSql(string DatabaseName, string SqlStr) 38 {

39string SqlConnectionStr = @"server="+ hostname + ";uid=" + username + ";pwd=" + userpassword;

40SqlConnection myConnection = new

SqlConnection(SqlConnectionStr);

41SqlCommand myCommand = new SqlCommand(SqlStr, myConnection);

42 myCommand.Connection.Open();

43 myCommand.Connection.ChangeDatabase(DatabaseName);

44 myCommand.ExecuteNonQuery();

45 myCommand.Connection.Close();

46 }

47

48private void AddFlowerShopDataBase()

49 {

50 ExecuteSql("pubs", CreateSqlStr());

51 }

52

53private void ModifyXML()

54 {

55string XMLdir = Context.Parameters["installdir"] + @"Web.config";

56 XmlNodeReader reader = null;

57 XmlTextWriter writer = null;

58 XmlDocument doc = new XmlDocument();

59 doc.Load(XMLdir);

60 reader = new XmlNodeReader(doc);

61writer = new XmlTextWriter(XMLdir, System.Text.Encoding.UTF8);

62

63try

64 {

65while (reader.Read())

66 {

67if (reader.NodeType == XmlNodeType.Element && == "connectionStrings")

68 {

69string strContent = reader.ReadInnerXml(); 70strContent = "";

71 XmlNode root = doc.DocumentElement;

72XmlElement elem = doc.CreateElement("connectionStrings");

73 elem.InnerXml = strContent;

74root.ReplaceChild(elem, root.ChildNodes[1]);

相关文档
最新文档