C#
打包和部署
1.
构建我们自己的项目(在这里我们用一个简单窗体作为我们的项目)
2.
在解决方案中添加一个安装项目
,
用以实现项目
MyProject
的打包安装
本来到此为止我们就可以对安装程序进行设置了,确定到底需要将哪些文件部署到目标机器上的哪些部分。但是由于实际需要,要求我们将数据库一起打包,所以我们的工作有所变化。
添加一个类库,增加一个安装程序类,重写该类的
install
方法,写入执行建库、建表脚本的代码。最后在安装项目
Setup1
中添加进此类库的主输出,于是当我们进行安装时,就会调用该类库的主输出,然后会自动执行
install
方法,结果就帮助我们在目标计算机上安装好我们项目所需要的数据库。
3.
获得建库、建表的脚本(在本机上获得需要打包的数据库的脚本,如现在打包
bankDB
)
注意:现在脚本文件中只有数据库的结构,如表,列,存储过程等等,但是没有数据,所以需要我们自己手动添加插入数据的这部分
SQL
代码
.
最后保存到安装项目
MyProjSetup
之中
.
在
MyProj
Setup
中添加该脚本文件
4.
在解决方案中添加类库
DBAction
用以实现数据库操作
删除原有类,加入安装程序类
Installer1.cs.
这个类的主要功能是完成安装数据库
,
我们在这个类里面写执行
bankDB.sql
脚本文件的代码
.
5.
将项目
MyProject
的输出
(
以及
DBClassLibrary
类库的输出
)
添加到部署项目
MyProjSetup
中
,
这里的输出将是最后在目的客户机上要安装的那些文件
右键单击
MyProj
Setup --->
视图
--->
文件系统,选择应用程序文件夹,右击,在
“
操作
”
菜单上,指向
“
添加
”
,然后选择
“
项目输出
”
分别在主输出中选中来自
DBAction
类库的活动和来自
MyProjectV2
应用程序的活动
6.
创建自定义安装对话框
(
比如许可协议对话框
)
右键单击
Setup1 --->
视图
--->
用户界面
在用户界面编辑器中,选择
“
安装
”
下的
“
启动
”
节点,在
“
操作
”
菜单上,选择
“
添加对话框
”
右键点击
“
文本框
(A)”
,选择上移,重复此操作,直到
“
文本框
(A)”
位于
“
安装文件夹
”
节点之上
7. 添加许可协议
许可协议是
RTF
格式的文件
,
我们可以将写好的
word
文档另存为
RTF
格式文件
,
然后添加到
MyProjectV2
应用程序中
.
然后将我们的
”
许可协议
.rtf”
文件和协议窗口关联起来
,
首先转到用户界面
在
LicenseFile
属性的下拉框中选择浏览
,
然后在下一界面选中
”
应用程序文件夹
”
然后点击
”
添加文件
”,
找到你自己的协议文件并添加
8. 设置文本框 (A) 窗口 ( 该窗口接收用户在安装时的输入 , 以便接收数据库的登录名和密码等等 )
9. 创建自定义操作(给 MyInstaller.cs 设置参数)
选中
MyProjSetup,
通过
“
视图
”
进入
“
自定义操作
”
在
“
安装
”
节点的右键菜单中选择
“
添加自定义操作
”
在
“
选择项目中的项
”
对话框中,选中应用程序文件夹后,点击确定
选择
“
主输出来自
DBClassLibrary(
活动
)”
项,然后单击
“
确定
”
关闭对话框
在上图主输出来自
“DBClassLiabrary(
活动
)”
的
“
属性
”
窗口中,选择
CustomActionData
属性并键入
/dbname=[EDITA1] /server=[EDITA2] /user=[EDITA3] /pwd=[EDITA4] /targetdir="[TARGETDIR]\", [TARGETDIR]
代表的是当用户在安装项目时,所选择的目的地址,一旦确定。就会将
MyProjSetup
下面的文件拷贝到该路径下面,供安装使用。
使用
.net
打包程序时,在安装过程中用户所选择的安装路径中是不能含有空格的。为什么呢?原来是
sql server
的
osql
的执行命令行方式的时候,如果你的安装路径中含有空格的话,那个命令行是不能正确的执行的。
(未完待续)