看完本文章后,你应该可以用InstallShield建立一个安装包,这个安装包可以实现以下功能:
1、检查服务器是否安装Microsoft.Net Framework 2.0,如果安装,自动安装。
2、在IIS中建立站点,并为站点建立单独的应用程序池
3、在MS SQL Server中建立数据库,并初始化数据,同时将用户输入的信息保存在数据库中
4、修改Web.config中的数据库连接字符串。
1、检查服务器是否安装Microsoft.Net Framework 2.0,如果安装,自动安装。
2、在IIS中建立站点,并为站点建立单独的应用程序池
3、在MS SQL Server中建立数据库,并初始化数据,同时将用户输入的信息保存在数据库中
4、修改Web.config中的数据库连接字符串。
建立一个Basic MSI Project,命名为VS2005SampleSetup。
切换到Project Assistant视图
一、在Application Information中,设置安装程序的基本信息。
二、在Installation Requirements中,设置系统需求。因为我们要在IIS中建立站点,所以只选择Windows 2003 Server。
三、在Application Files中,修改默认的安装路径,并设置Web程序中的文件。
四、在Installation Interview中,设置不显示授权文件,允许用户更改安装路径,不允许用户更改安装部件
切换到Installation Designer视图
一、修改安装流程,让用户输入一些信息,我们将把这些信息保存在数据库中。另外,让用户选择数据库服务器,并设置数据库名称。
1、选择User Interface下的Dialogs节点。
一、修改安装流程,让用户输入一些信息,我们将把这些信息保存在数据库中。另外,让用户选择数据库服务器,并设置数据库名称。
1、选择User Interface下的Dialogs节点。
2、在中间列表的All Dialogs上点右键,选择New Dialog...,出现新对话框向导
3、点下一步,设置对话框类型。这里一共有4种类型,选择一种后,下边会显示它的描述。这里我们选择Interior Wizard Panel。去掉Let me Insert this dialog into a sequence复选框,点击Finish关闭向导
4、修改对话框名称为UserInfo。
5、点开UserInfo,选择Chinese(Simplified)节点,向对话框中添加控件。
6、对话框编辑器和VS2005里WinForm的设计器差不多,很容易上手。选中一个控件,可以在右侧的属性框中设置它的各个属性值。下面,我们要添加一个输入框让用户来输入一个用户名,以便我们将它插入到数据库中。
我们选择工具栏上的输入框按钮,在对话框上划出一个区域,松开鼠标后,会提示我们输入这个控件的Property。我们在程序的其它位置,可以通过这个属性访问到它的值。这里我们输入US_USER_NAME。按照这个方法,你可以添加其它需要的控件。完成后的对话框如下图所示:
7、按照上面的方法,再添加一个对话框DataBaseName,让用户输入要建立的数据库的名称,输入框的Property设置成US_DATABASE_NAME。完成后的对话框如下图:
8、对话框建立好了,下面的工作就是把它们放到安装步骤里面去。
9、选择Behavior and Logic节点下面的Sequences,在中间的列表中,选择User Interface下的InstallWelcome,这就是按出现顺序排列的安装时要显示的各个对话框。
我们需要把UserInfo对话框放在SQLLogin的前面,DataBaseName对话框放在SQLLogin的后面,怎么做呢?很简单。先选中SQLLogin前面的DestinationFolder,在右侧空格中选择【Edit dailog behavior】,然后在中间空格中选择Next,我们可以看到,右侧列表中的有一个NewDialog的Event,Argument是SQLLogin。
我们只需把SQLLogin改成UserInfo就可以了。同时,编辑UserInfo的Next按钮的事件,也添加一个NewDialog的Event,Argument设置成SQLLogin,Condition是执行这个事件的条件,如果条件不成立,就不会执行这个事件。这里我们设置成US_USER_NAME<> "",也就是说,如果用户不输入用户名,则不会进行到下一步。经过这样的设置后,现在的User Interface中的对话框顺序是这样的:
二、在IIS中建立站点
1、选择Server Configuration下的Internet Information Services节点
1、选择Server Configuration下的Internet Information Services节点
2、右键点击中间列表的Application Pools节点,选择Add Application Pool。
3、修改刚建立的应用程序池的名称为VS2005SmaplePool。选中VS2005SmaplePool,你可以在右边的选项中设置各个选项的值,这里就不再详细说了
4、右键点击中间列表的Web Sites节点,选择Add Web Site。
5、修改新建立的站点名为VS2005Sample。
6、选中VS2005Sample站点,在右边设置站点的选项。
选择General标签,如果你想在卸载程序时删除站点,选择Delete Web Site on Unistall。
选择Web Site标签,在Site Number中输入一串随机的数字。这个数字串是IIS中的站点ID。
选择Home Directory标签,在Local Path中设置站点的路径,如本例中,为[INSTALLDIR]/Web。同时,修改下边的应用程序池为我们刚才建立的VS2005SamplePool。
选择Documents标签,设置网站的起始页,本例为Default.aspx
其它的选项可以根据实际情况进行设置,本例中用不到,就不再设置了。
7、在VS2005Sample站点下建一下虚拟目录,取名为NoUse。这个虚拟目录其实一点用也没有,但是如果不建虚拟目录,InstallShield不会建立站点。
至此,站点就建立完成了。
三、建立数据库并初始化数据。
前提是:你已经在本地的SQL Server服务器中建立了一个数据库,并已经初始化好了数据。
1、选择Server Configuration下的SQLScripts节点
前提是:你已经在本地的SQL Server服务器中建立了一个数据库,并已经初始化好了数据。
1、选择Server Configuration下的SQLScripts节点
2、右键点击中间列表的SQL Scripts节点,选择Database import wizard...,出现数据库导入向导
3、点下一步,选择本地数据库的服务器和登录信息
4、点下一步,选择要导入的数据库和要生成的脚本的名称
5、点下一步,选择要包含的表。一般选择Include All Tables
6、点下一步,选择其它数据库对象。如果需要同时导入数据,请选中Records
7、点下一步,设置脚本生成选项。一般的选项如下图
8、点下一步,准备生成脚本。如果你想在每次生成安装程序时都重新掭数据库脚本,请选中Regenerate Script at Build。一般情况下,如果你的数据库不是经常变动,不要选择此项
9、点Finish,InstallShield会开始为我们编写脚本。
10、脚本生成完成后,在中间列表中选中刚生成的脚本,本例为VS2005SmapleDatabaseScript。
11、在右边,选择Script标签,在脚本的顶部,添加生成数据库的脚本
CREATE DATABASE [__VS2005SampleDataBaseName__]
GO
USE [__VS2005SampleDataBaseName__]
GO
GO
在脚本的底部,添加插入数据的脚本
Insert into [User](Name,NickName) Values ('__USER_NAME__','__USER_NAME__')
GO
Insert into [User](Name,NickName) Values ('__USER_NAME__','__USER_NAME__')
GO
其中,__VS2005SampleDataBaseName__、__USER_NAME__是用户指定的,我们在下一步里会用变量替换它们。
12、选择Text Replacement标签,替换__VS2005SampleDataBaseName__和__USER_NAME__为用户输入的值。
__VS2005SampleDataBaseName__就要替换成US_DATABASE_NAME,
__USER_NAME__替换成US_USER_NAME。这样,InstallShiled在执行数据库脚本时,会先把__VS2005SampleDataBaseName__和__USER_NAME__替换成我们需要的值。
12、选择Text Replacement标签,替换__VS2005SampleDataBaseName__和__USER_NAME__为用户输入的值。
__VS2005SampleDataBaseName__就要替换成US_DATABASE_NAME,
__USER_NAME__替换成US_USER_NAME。这样,InstallShiled在执行数据库脚本时,会先把__VS2005SampleDataBaseName__和__USER_NAME__替换成我们需要的值。
四、修改Web.config中的数据库连接字符串
1、选择System Configuration下的XML File Changes节点,在中间窗格中右键XML Files,选择Import...
1、选择System Configuration下的XML File Changes节点,在中间窗格中右键XML Files,选择Import...
2、找到Web.config文件
3、只选择数据库连接字符串这个节点。
4、导入
5、在General标签中修改value属性的值为:Server=[IS_SQLSERVER_SERVER];DataBase=[US_DATABASE_NAME];uid=[IS_SQLSERVER_USERNAME];pwd=[IS_SQLSERVER_PASSWORD];
五、发布
1、选择Media下的Releases节点,在中间的Release节点上点右键,选择Release wizard。
1、选择Media下的Releases节点,在中间的Release节点上点右键,选择Release wizard。
2、点击Next,输入配置名称,VS2005SampleConfiguration
3、点击Next,输入Release名称,这里输入OneImage
4、点击Next,选择包含的语言。
5、点击Next
6、点击Next,Media Type选择Web。如果你想刻成安装光盘,可选择CD。
7、点击Next,选择安装类型。这里选择One Executable,即一个Setup里包括所有需要用到的文件。
8、点Next,Next,在Windows Installer Location对话框中,选择Extract engine from setup.exe。
9、点Next,Next,在Password & Copyright对话框中,你可以设置自己的版权标志。这会在生成的Setup.exe文件上有所体现
10、Next,最重要的一步:选择Include or set up .NET Framewor。其它选择按照图片设置。
11、Next,Next,Next,Next,Next,Finish!!!如果你选择了Build the Release,Install Shield会马上编译并生成安装文件。
12、到这里,还有一个小缺憾,就是安装时,如果发现目标机器上没有安装.NET Framework,会提示用户是否安装。这怎么行?不安装我的程序就没法运行啊,一定要去掉它。还好可以设置。选择我们刚配置好的OneImage的Relase,在右边的属性表中,设置Display .NET Option Dialog的值为No,就不再询问用户是否安装.NET Framework了,如果发现没有安装,就立即安装,爽!
六、总结
不能完成:1、设置ASP.NET版本。2、设置主机头。 这些需要安装完成后手动设置。