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