- 热门文章:
- · Displaying ListView items - with class!
- · 应Mr.Cool要求:Using Late Bound COM Objects
- · 原创Nutsbell系列---winform如何做启动页面
- · 一个简单的用户登陆程序……
- · Henry手记— WinForm Datagrid结构剖析(一)
- · 手把手教你在Win2003下配置ASP.NET开发环境
- · winform里的treeview能够跟数据绑定吗?我不知道。里面有treeview的用法。是转来的,看看吧。我已经用了。
- · 用户界面设计风格说明(转)
- · 一段log execption 的代码
- · 从App到Application (CSDN)
- · VB.Net创建不规则窗体 Montaque(原作)
- · VB.NET中声音的播放 Montaque(原作)
上一篇:这个是一个常见错误 >>
让你仔细看MSDN,你不看,现在又来问了:)
创建安装程序类
- 在“文件”菜单上指向“新建”,然后选择“项目”。
- 在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic 项目”,然后选择“模板”窗格中的“类库”。在“名称”框中键入 DBCustomAction。
- 从“项目”菜单中选择“添加新项”。
- 在“添加新项”对话框中选择“安装程序类”。在“名称”框中键入 DBCustomAction。
创建数据连接对象
- 在“服务器资源管理器”中,选择“数据连接”。右击并选择“添加连接”。
- 在“数据链接属性”对话框中,输入对您的 SQL Server 配置有效的服务器名称、用户名和密码值。在“数据库”框中,键入 master。选中“允许保存密码”复选框。
- 将新连接拖到“DBCustomAction.vb”设计器中以创建“sqlConnection1 对象”。
创建包含 SQL 语句的文本文件以创建数据库
- 在“解决方案资源管理器”中,选择“DBCustomAction”项目。从“项目”菜单中选择“添加新项”。
- 在“添加新项”对话框中,选择“文本文件”。在“名称”框中,键入 sql.txt(必须是小写)。
- 将以下内容添加到 sql.txt 文件中: CREATE TABLE [dbo].[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].[Employees] WITH NOCHECK ADD CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED ([Name]) ON [PRIMARY];
- 在“解决方案资源管理器”中,选择“sql.txt”。在“属性”窗口中,将“生成操作”属性设置为“嵌入的资源”。
将代码添加到安装程序类中以阅读文本文件
- 在“解决方案资源管理器”中,选择“DBCustomAction.vb”。在“视图”菜单上,选择“代码”。
- 在模块的顶部添加以下 Imports 语句: Imports System.IOImports System.Reflection
- 将以下代码添加到类中: Private Function GetSql(ByVal Name As String) As String Try @# Get the current assembly. Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly() @# Resources are named using a fully qualified name. Dim strm As Stream = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name) @# Read the contents of the embedded file. Dim reader As StreamReader = New StreamReader(strm) Return reader.ReadToEnd() Catch ex As Exception MsgBox("In GetSQL: " & ex.Message) Throw ex End TryEnd FunctionPrivate Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String) Dim Command As New SqlClient.SqlCommand(Sql, sqlConnection1) Command.Connection.Open() Command.Connection.ChangeDatabase(DatabaseName) Try Command.ExecuteNonQuery() Finally @# Finally, blocks are a great way to ensure that the connection @# is always closed. Command.Connection.Close() End TryEnd SubProtected Sub AddDBTable(ByVal strDBName As String) Try @# Create the database. ExecuteSql("master", "CREATE DATABASE " + strDBName) @# Create the tables. ExecuteSql(strDBName, GetSql("sql.txt")) Catch ex As Exception @# Report any errors and abort. MsgBox("In exception handler: " & ex.Message) Throw ex End TryEnd SubPublic Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) MyBase.Install(stateSaver) AddDBTable(Me.Context.Parameters.Item("dbname"))End Sub
- 在“生成”菜单上,选择“生成 DBCustomAction”。
创建部署项目
- 在“文件”菜单上,选择“添加项目”->“新建项目”。
- 在“添加项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入 DBCustomAction Installer。
- 在“属性”窗口中,选择 ProductName 属性并键入 DB Installer。
- 在文件系统编辑器中,选择“应用程序文件夹”。在“操作”菜单上,选择“添加”->“项目输出”。
- 在“添加项目输出组”对话框中,为“DBCustomAction”项目选择主输出。
创建自定义安装对话框
- 在解决方案资源管理器中选择“DBCustomAction Installer”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。
- 在用户界面编辑器中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。
- 在“添加对话框”对话框中选择“文本框 (A)”对话框。
- 在“操作”菜单上选择“上移”。重复此步骤,直到“文本框 (A)”对话框位于“安装文件夹”节点之上。
- 在“属性”窗口中,选择 BannerText 属性并键入 Specify Database Name。
- 选择 BodyText 属性并键入 This dialog allows you to specify the name of the database to be created on the database server。
- 选择 Edit1Label 属性并键入 Name of DB:。
- 选择 Edit1Property 属性并键入 CUSTOMTEXTA1。
- 选择 Edit2Visible、Edit3Visible 和 Edit4Visible 属性,并将它们设置为 False。
创建自定义操作
- 在解决方案资源管理器中选择“DBCustomAction Installer”项目。在“视图”菜单上指向“编辑器”,然后选择“自定义操作”。
- 在自定义操作编辑器中选择“安装”节点。在“操作”菜单上,选择“添加自定义操作”。
- 在“选择项目中的项”对话框中,双击“应用程序文件夹”。
- 选择“主输出来自 DBCustomAction(活动)”项。
- 在“属性”窗口中,选择 CustomActionData 属性并键入 /dbname=[CUSTOMTEXTA1]。
- 在“生成”菜单上选择“生成 DBCustomActionInstaller”。
在开发计算机上安装
- 在解决方案资源管理器中选择“DBCustomAction Installer”项目。在“项目”菜单上选择“安装”。
这将在开发计算机上运行安装程序。
部署到其他计算机
- 在 Windows 资源管理器中,定位到项目目录并查找所生成的安装程序。默认路径将是 \documents and settings\yourloginname\DBCustomAction Installer\project configuration\DBCustomAction Installer.msi。默认的“项目配置”是“Debug”。
- 将 DBCustomAction Installer.msi 文件和该目录下的其他所有文件和子目录复制到另一台计算机上。
注意 若要在未连网的计算机上进行安装,请将文件复制到 CD-ROM 等传统媒体中。
在目标计算机上双击 Setup.exe 文件来运行安装程序。
卸载应用程序
- 在 Windows“控制面板”中,双击“添加/删除程序”。
- 在“添加/删除程序”对话框中,选择“DBCustomAction 安装程序”并单击“移除”。
提示 若要从开发计算机上卸载,则在“项目”菜单上选择“卸载”。
请参见
部署中的自定义操作管理 | CustomActionData 属性 | 通过 ADO.NET 连接到数据源 | 自定义操作中的错误处理
相关文章:
- · 调用屏幕保护 40Star(原作)
- · 托拽Explore中的文件到VB.net的窗口 40Star(原作)
- · 窗体显示有模式与无模式之分...
- · 窗体的Close方法与Hide方法...
- · 启动窗体的设计...
- · 从一个窗体控件另一窗体,需要通过共享变量...
- · 我已经解决了,以下是解决的类的详细信息:
- · HOW TO: Set a Windows Hook in Visual C# .NET
- · 除了使用hook外,下面的代码也能够在全局捕捉鼠标:(csdn)
- · ---------续
- · 在.NET中使用API的方法
- · To CNET:全局热键的例子,不知道有没有用
- · 使用WINDOWS2003出问题的朋友请看
- · 俺写的一个简单的字符串处理函数(可能会有用)
- · 手把手教你在Win2003下配置ASP.NET开发环境
- · 确保只有一个程序实例运行(C#)之解决方案
- · 在C#中调用VB.NET函数实例
- · VB.NET窗体操作技巧两则
- · 用C#创建COM对象
- · 如何在.NET中处理WMI数据
- · 我的推荐:在VB.NET中寻找App
- · Visual Basic .NET 代码示例:与 Windows 服务交互 (2003年2月17日)
- · 附:创建 Windows XP 图标
- · MainMenu的Merge使用
- · 关于 WinForm程序的登陆处理
- · 我的推荐:了解正则表达式
- · 自己做出VS.NET风格的右键菜单
- · 解决了,通过DataSet的递归操作TreeView生成树状图
- · 一段在IE上加按钮的Script,主要操作注册表,先贴了再说
- · 如何定制你自己的DataGrid
- · 子窗体刷新父窗体的问题完全解决了,谢谢E版主
- · 如何让TextBox的黑色边框变成淡蓝色(borderstyle=FixedSingle)
- · 启动关联的应用程序打开特殊文件 zlyperson(原作)
- · 手把手教你在Win2003下配置ASP.NET开发环境
- · XSL、XML教程-DVBBS皮肤制作 最基本的语法
- · C#对XML操作:一个处理XML文件的类(1)
- · 使用xmltextreader对xml进行简单的读取和写入操作
- · vb.net 与 XML 的操作
