看完本文章后,你应该可以用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。
![](https://i-blog.csdnimg.cn/blog_migrate/5c7a98e8849dc9887b75a4fb528e0081.png)
切换到Project Assistant视图
一、在Application Information中,设置安装程序的基本信息。
![](https://i-blog.csdnimg.cn/blog_migrate/ab5fd5d897b5b906e242b7b68681380f.png)
二、在Installation Requirements中,设置系统需求。因为我们要在IIS中建立站点,所以只选择Windows 2003 Server。
![](https://i-blog.csdnimg.cn/blog_migrate/fa7e6ed670dbc60273ce5652b7d0b0ba.png)
三、在Application Files中,修改默认的安装路径,并设置Web程序中的文件。
![](https://i-blog.csdnimg.cn/blog_migrate/ed99aa33fe90a14bede3ad690d59de4d.png)
四、在Installation Interview中,设置不显示授权文件,允许用户更改安装路径,不允许用户更改安装部件
![](https://i-blog.csdnimg.cn/blog_migrate/98aef704d0824431b9fd0917ccc89364.png)
切换到Installation Designer视图
一、修改安装流程,让用户输入一些信息,我们将把这些信息保存在数据库中。另外,让用户选择数据库服务器,并设置数据库名称。
1、选择User Interface下的Dialogs节点。
一、修改安装流程,让用户输入一些信息,我们将把这些信息保存在数据库中。另外,让用户选择数据库服务器,并设置数据库名称。
1、选择User Interface下的Dialogs节点。
![](https://i-blog.csdnimg.cn/blog_migrate/9381f843e19a8c058bcb67a42c988799.png)
2、在中间列表的All Dialogs上点右键,选择New Dialog...,出现新对话框向导
![](https://i-blog.csdnimg.cn/blog_migrate/21ae4fdc89cdeb0cc64d39910c23a035.png)
3、点下一步,设置对话框类型。这里一共有4种类型,选择一种后,下边会显示它的描述。这里我们选择Interior Wizard Panel。去掉Let me Insert this dialog into a sequence复选框,点击Finish关闭向导
![](https://i-blog.csdnimg.cn/blog_migrate/f6d1a90900bad8e7c9695507cf1caa93.png)
4、修改对话框名称为UserInfo。
5、点开UserInfo,选择Chinese(Simplified)节点,向对话框中添加控件。
![](https://i-blog.csdnimg.cn/blog_migrate/9ca2f090dd8b0dd2acc5e2e5af1d308c.png)
6、对话框编辑器和VS2005里WinForm的设计器差不多,很容易上手。选中一个控件,可以在右侧的属性框中设置它的各个属性值。下面,我们要添加一个输入框让用户来输入一个用户名,以便我们将它插入到数据库中。
我们选择工具栏上的输入框按钮,在对话框上划出一个区域,松开鼠标后,会提示我们输入这个控件的Property。我们在程序的其它位置,可以通过这个属性访问到它的值。这里我们输入US_USER_NAME。按照这个方法,你可以添加其它需要的控件。完成后的对话框如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/be7499d9e0ba14b08e412927d097bc96.png)
7、按照上面的方法,再添加一个对话框DataBaseName,让用户输入要建立的数据库的名称,输入框的Property设置成US_DATABASE_NAME。完成后的对话框如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/bc64715a3b66fd67a2fc63c70c0b64b4.png)
8、对话框建立好了,下面的工作就是把它们放到安装步骤里面去。
9、选择Behavior and Logic节点下面的Sequences,在中间的列表中,选择User Interface下的InstallWelcome,这就是按出现顺序排列的安装时要显示的各个对话框。
![](https://i-blog.csdnimg.cn/blog_migrate/a56c2b4b24deb4343720c03a698895ec.png)
我们需要把UserInfo对话框放在SQLLogin的前面,DataBaseName对话框放在SQLLogin的后面,怎么做呢?很简单。先选中SQLLogin前面的DestinationFolder,在右侧空格中选择【Edit dailog behavior】,然后在中间空格中选择Next,我们可以看到,右侧列表中的有一个NewDialog的Event,Argument是SQLLogin。
![](https://i-blog.csdnimg.cn/blog_migrate/5673875fbf0788e3a5965cd742e2ae6a.png)
我们只需把SQLLogin改成UserInfo就可以了。同时,编辑UserInfo的Next按钮的事件,也添加一个NewDialog的Event,Argument设置成SQLLogin,Condition是执行这个事件的条件,如果条件不成立,就不会执行这个事件。这里我们设置成US_USER_NAME<> "",也就是说,如果用户不输入用户名,则不会进行到下一步。经过这样的设置后,现在的User Interface中的对话框顺序是这样的:
![](https://i-blog.csdnimg.cn/blog_migrate/03042b0657ccbb080671b4f857a33594.png)
二、在IIS中建立站点
1、选择Server Configuration下的Internet Information Services节点
1、选择Server Configuration下的Internet Information Services节点
2、右键点击中间列表的Application Pools节点,选择Add Application Pool。
![](https://i-blog.csdnimg.cn/blog_migrate/f6cbcf827e8a17d0fcc2004ef329d303.png)
3、修改刚建立的应用程序池的名称为VS2005SmaplePool。选中VS2005SmaplePool,你可以在右边的选项中设置各个选项的值,这里就不再详细说了
4、右键点击中间列表的Web Sites节点,选择Add Web Site。
![](https://i-blog.csdnimg.cn/blog_migrate/fe4d09aa41d1b59371dac9d4275bf970.png)
5、修改新建立的站点名为VS2005Sample。
6、选中VS2005Sample站点,在右边设置站点的选项。
选择General标签,如果你想在卸载程序时删除站点,选择Delete Web Site on Unistall。
![](https://i-blog.csdnimg.cn/blog_migrate/7228aa9d86f9e499f3170cfab9f5a77a.png)
选择Web Site标签,在Site Number中输入一串随机的数字。这个数字串是IIS中的站点ID。
![](https://i-blog.csdnimg.cn/blog_migrate/dc14dfd496ce9196596cc8586b8d9126.png)
选择Home Directory标签,在Local Path中设置站点的路径,如本例中,为[INSTALLDIR]/Web。同时,修改下边的应用程序池为我们刚才建立的VS2005SamplePool。
![](https://i-blog.csdnimg.cn/blog_migrate/784a9513941f2f7c6732fc4cf3974c4b.png)
选择Documents标签,设置网站的起始页,本例为Default.aspx
![](https://i-blog.csdnimg.cn/blog_migrate/226b87cc6778e721e05beb05f6cc35fb.png)
其它的选项可以根据实际情况进行设置,本例中用不到,就不再设置了。
7、在VS2005Sample站点下建一下虚拟目录,取名为NoUse。这个虚拟目录其实一点用也没有,但是如果不建虚拟目录,InstallShield不会建立站点。
至此,站点就建立完成了。
三、建立数据库并初始化数据。
前提是:你已经在本地的SQL Server服务器中建立了一个数据库,并已经初始化好了数据。
1、选择Server Configuration下的SQLScripts节点
前提是:你已经在本地的SQL Server服务器中建立了一个数据库,并已经初始化好了数据。
1、选择Server Configuration下的SQLScripts节点
2、右键点击中间列表的SQL Scripts节点,选择Database import wizard...,出现数据库导入向导
![](https://i-blog.csdnimg.cn/blog_migrate/b374d24f308f1c1a0c4076571e86d3a3.png)
3、点下一步,选择本地数据库的服务器和登录信息
![](https://i-blog.csdnimg.cn/blog_migrate/d8102d776a3f4fa9ff52ab7fed88b2ea.png)
4、点下一步,选择要导入的数据库和要生成的脚本的名称
![](https://i-blog.csdnimg.cn/blog_migrate/b4b7dc56c77aa2631bc04cf935a14f42.png)
5、点下一步,选择要包含的表。一般选择Include All Tables
![](https://i-blog.csdnimg.cn/blog_migrate/544fbe3607b044f1b09d2784f6649b81.png)
6、点下一步,选择其它数据库对象。如果需要同时导入数据,请选中Records
![](https://i-blog.csdnimg.cn/blog_migrate/c5695c28949b1d45140e1e62042dbfbd.png)
7、点下一步,设置脚本生成选项。一般的选项如下图
![](https://i-blog.csdnimg.cn/blog_migrate/c0da5b0ee99c3cca2ac4a909bb6ec32b.png)
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__替换成我们需要的值。
![](https://i-blog.csdnimg.cn/blog_migrate/0231ad72194e8f1933ca657fd2109e36.png)
![](https://i-blog.csdnimg.cn/blog_migrate/614bb24a0e95309d10df5e0af44f4150.png)
四、修改Web.config中的数据库连接字符串
1、选择System Configuration下的XML File Changes节点,在中间窗格中右键XML Files,选择Import...
1、选择System Configuration下的XML File Changes节点,在中间窗格中右键XML Files,选择Import...
![](https://i-blog.csdnimg.cn/blog_migrate/4ff59200e25090caddb5056cf7deb84d.png)
2、找到Web.config文件
![](https://i-blog.csdnimg.cn/blog_migrate/479316626477325d307a7d4804a4a47c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6b52679bee578efcd79c197f1b36a821.png)
3、只选择数据库连接字符串这个节点。
![](https://i-blog.csdnimg.cn/blog_migrate/1bd31ef64c99ee26f3f8f422822c8e2f.png)
4、导入
![](https://i-blog.csdnimg.cn/blog_migrate/7241ec1ae691e24a2b4c06ea4bc738fb.png)
5、在General标签中修改value属性的值为:Server=[IS_SQLSERVER_SERVER];DataBase=[US_DATABASE_NAME];uid=[IS_SQLSERVER_USERNAME];pwd=[IS_SQLSERVER_PASSWORD];
![](https://i-blog.csdnimg.cn/blog_migrate/b8660f16cd5c9f62a5aaa60127543b0a.png)
五、发布
1、选择Media下的Releases节点,在中间的Release节点上点右键,选择Release wizard。
1、选择Media下的Releases节点,在中间的Release节点上点右键,选择Release wizard。
![](https://i-blog.csdnimg.cn/blog_migrate/6b4ec4774552e15be819dd345f263832.png)
2、点击Next,输入配置名称,VS2005SampleConfiguration
![](https://i-blog.csdnimg.cn/blog_migrate/d15504e001805efb780a10bd58682be0.png)
3、点击Next,输入Release名称,这里输入OneImage
![](https://i-blog.csdnimg.cn/blog_migrate/5f92b2c1a7c412dbe3297881c306dab3.png)
4、点击Next,选择包含的语言。
![](https://i-blog.csdnimg.cn/blog_migrate/983896e0de952c88071b16421884ead4.png)
5、点击Next
![](https://i-blog.csdnimg.cn/blog_migrate/d7dc4c095fbe2b4fddd71ff51b35598a.png)
6、点击Next,Media Type选择Web。如果你想刻成安装光盘,可选择CD。
![](https://i-blog.csdnimg.cn/blog_migrate/c6a1aa7f443d060135a55f5327104c04.png)
7、点击Next,选择安装类型。这里选择One Executable,即一个Setup里包括所有需要用到的文件。
![](https://i-blog.csdnimg.cn/blog_migrate/50c547e6d258952a1f4d6fa756d28288.png)
8、点Next,Next,在Windows Installer Location对话框中,选择Extract engine from setup.exe。
![](https://i-blog.csdnimg.cn/blog_migrate/1f2b4e322b71f803fb223e08fe9bb5bc.png)
9、点Next,Next,在Password & Copyright对话框中,你可以设置自己的版权标志。这会在生成的Setup.exe文件上有所体现
![](https://i-blog.csdnimg.cn/blog_migrate/e47c5664a478465cf61ad324c660b055.png)
10、Next,最重要的一步:选择Include or set up .NET Framewor。其它选择按照图片设置。
![](https://i-blog.csdnimg.cn/blog_migrate/0a45dfbbfc8a214da8c9f1a1c07ab5dc.png)
11、Next,Next,Next,Next,Next,Finish!!!如果你选择了Build the Release,Install Shield会马上编译并生成安装文件。
![](https://i-blog.csdnimg.cn/blog_migrate/0a0e21b8c28b1500a8bbbfda20419d54.png)
12、到这里,还有一个小缺憾,就是安装时,如果发现目标机器上没有安装.NET Framework,会提示用户是否安装。这怎么行?不安装我的程序就没法运行啊,一定要去掉它。还好可以设置。选择我们刚配置好的OneImage的Relase,在右边的属性表中,设置Display .NET Option Dialog的值为No,就不再询问用户是否安装.NET Framework了,如果发现没有安装,就立即安装,爽!
![](https://i-blog.csdnimg.cn/blog_migrate/9b59168c38447781a3335aa86f827ccb.png)
六、总结
不能完成:1、设置ASP.NET版本。2、设置主机头。 这些需要安装完成后手动设置。