asp.net 开发的WEB项目和数据库怎样打包成exe安装文件

    技术2024-11-13  25

    http://topic.csdn.net/u/20080719/16/b5ff33e2-51ec-4516-b38c-3a5cd2f63dff.html

     

     

    步骤:     1、添加一个新项目->选择类库模板->命名为DBCustomAction     2、单击项目右键->添加新项->选择安装程序类(命名为DBCustomAction.cs)     3、在服务器资源管理器中添加->连接到数据库->指定用户密码(选择允许保存密码)->数据库选择master     4、切换到DBCustomAction.cs的视图状态->将服务器资源管理器数据库连接中的master.dbo拖动到designer中     5、添加一个新项sql.txt(注意要使用小写),输入下列sql代码     CREATE TABLE [dbo].[MK_Employees] (     [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,     [Rsvp] [int] NULL ,     [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL     ) ON [PRIMARY];         ALTER TABLE [dbo].[MK_Employees] WITH NOCHECK ADD     CONSTRAINT [PK_MK_Employees] PRIMARY KEY CLUSTERED     (     [Name]     ) ON [PRIMARY];     (P.S:也可以直接用SqlServer导出)         6、在sql.txt的右键属性中->生成操作->嵌入的资源     7、将DBCustomAction.cs切换到代码视图,添加下列代码     private string GetSql(string Name)     {     try     {     Assembly Asm = Assembly.GetExecutingAssembly();     Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name);     StreamReader reader = new StreamReader(strm);     return reader.ReadToEnd();     }     catch (Exception ex)     {     Console.Write("In GetSql:"+ex.Message);     throw ex;     }     }         private void ExecuteSql(string DataBaseName,string Sql)     {     System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);         Command.Connection.Open();     Command.Connection.ChangeDatabase(DataBaseName);     try     {     Command.ExecuteNonQuery();     }     finally     {     Command.Connection.Close();     }     }             protected void AddDBTable(string strDBName)     {     try     {     ExecuteSql("master","CREATE DATABASE "+ strDBName);     ExecuteSql(strDBName,GetSql("sql.txt"));     }     catch(Exception ex)     {     Console.Write("In exception handler :"+ex.Message);     }     }         public override void Install(System.Collections.IDictionary stateSaver)     {     base.Install(stateSaver);     AddDBTable(this.Context.Parameters["dbname"]);     }             8、再添加一个新项目,(选择添加到解决方案中)->项目类型为安装项目->命名为DBCustomAction Installer     9、选择应用程序文件夹->添加->项目输出->主输出     10、在方案资源管理器中->右键安装项目(DBCustomAction Installer)->视图->用户界面     11、选中启动结点->添加对话框->文本A     12、选动文本框A->右键->上移一直到最顶端     13、选择文本框A属性->修改BannerText,(Specify Database Name)     14、修改BodyText(This dialog allows you to specify the name of the database to be created on the database server. )     15、修改EditLabel1(Name of DB),修改Edit1Porperty(CUSTOMTEXTA1),将其他Edit2,3,4的Edit(2,3,4)Visible属性设为false;     16、在方案资源管理器中->右键安装项目(DBCustomAction Installer)->视图->自定义操作     17、选中安装结点->添加->双击应用程序文件夹->主输出来自DBCustomAction(活动)->右键属性->CustomActiveData属性修改为/dbname=[CUSTOMTEXTA1]     18、编译生成,OK!   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxwlkWalkthroughUsingCustomActionToCreateDatabaseDuringInstallation.asp

    最新回复(0)