大多数web site 都需要有大量的资源和配置文件, 将这些文件正确的发布到正确位置不是一件容易的事情. VisualStudio 2010中包含了另外的一个新功能, 能够生成一个名字为"Web Package" 的zip包, 这个包可以自描述并且包中包含了全部需要发布的资源可以直接通过MSDeploy直接发布到WebServer上以完成发布.
Task 1 – Opening the Project Properties Publish Page and Creating a Package.
(打开Project文件并且发布生成发布包)
1. 打开上一节中已经完成的WebProject WebApplicationDemo. 却认当前的Builde菜单中的Buildconfiguration (编译配置项)中选择的是Staging 选项.
2. 右键选择项目在菜单中选择Properties.点击 package/Publish Web 选项
3. 选中 Createweb package as a ZIP file 选项. 注意"PackageLocation" 中的容为后面编译后生成的package所在的位置.
4. 打开当前的项目文件所在的文件路径下. 打开其中的obj文件夹. 删除文件夹中已经存在的全部文件. (此文件夹中放置的是编译生成的文件. 先删除为了保证后面编译发布时更清晰的看到生成的文件)
5. 在VisualStudio的菜单中选择Projcet -> package -> Build Deployment Package . 之后我们会在Output窗口中看到当前的编译和发布信息. 如下图
6. 按照前排配置好的 PackageLocation地址去查看已经生成的package. (\obj\Staging\Package) package中的文件如下图所示
Task 2 – Preparing the Web Server for Deployment
1. 创建一个新的文件夹在C:\WebApplicationDemo
在开始菜单中 选择run (运行). 输入"inetmgr"命令 打开InternetInformation Services Manager
在 Connection 窗口中, 选择DefaultWebSite节点, 可以看到当前IIS中的Default site都有哪些
右键选择 Default Web Site 并且选择 Add Application
如下图所示在Add Application 对话框中设置Alias的值为 WebApplicationDemo, 并且 Physical Path 设置为 C:\WebApplicationDemo. 我们会将发布包发布到这个路径下. 选择OK. Application创建完成.
在IIS Manager中右键选择WebApplicationDemo Web Application 并且在菜单中选择Manage Application -> Advanced settings . 弹出的对话框如下图
选择ApplicationPool. 点击DefaultAppPool 弹出对话框. 在Application pool 中选择 ASP>NET v4.0
Task 3 – Deploying the Package
1. 前面我们已经将要发布的包生成好放置到 (项目文件夹\obj\Staging\Package ). 切换到这个路径下, 打开WebApplicationDemo.SetParameters.xml 文件. 文件中的内容如下图所示
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="Default Web Site/WebApplicationDemo_deploy" />
<setParameter name="ApplicationServices-Web.config Connection String" value="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" />
<setParameter name="LoggingConnectionString-Web.config Connection String" value="server=(local);database=Logger;Integrated Security=SSPI;" />
</parameters>
替换IIS Web ApplicationName 的value . 并且保存文件.
<setParameter name="IISWeb Application Name" value=" DefaultWeb Site/WebApplicationDemo" />
2.下面我们将使用Trial mode发布项目. (Trialmode 不是真实的演示发布, 但是它将演示发布的整个过程.)
3. 在开始菜单中 选择MicrosoftVisual Studio 2010 -> Visual studio Tools 并且选择 VisualStudio Command Prompt(2010)
4. 在命令行窗口中, 更改当前的路径到 C:\Program Files\IIS\MicrosoftWebDeploy (输入cd"C:\Program Files\IIS\MicrosoftWebDeploy\")
5. 执行 WebApplicationDemo.deploy.cmd 脚本文件并且用/t (for Trial) .命令如下(cmd脚本的全路径加/t)
"D:\VS2010TrainingKit\MyDemo\WebApplicationDemo\WebApplicationDemo\obj\Staging\Package\WebApplicationDemo.deploy.cmd"/t
6. 查看执行命令后的结果. 将把包中的全部文件发布出去. (当前使用了/t 因此仅仅是Trail Deployment)
7. 再次执行刚才的命令. 将/t 替换成 /y. 执行如下图. (/t代表trail/y代表yes 即真实发布)
8. 查看发布的物理路径. 被发布的文件已经发布到当前的路径下.
下面将验证一下刚才发布的结果
1. 在IIS Manager中右键 WebApplicationDemo 选择Switch to Content View. 可以看到当前WebApplicationDemo中的文件如下
2. 右键选择 WebForm1.aspx 选择Browse 查看发布后的结果
3. 注意 Current Environment:Staging 已经不是开发环境中的Development 了而是替换成了Staging. 上面已经正确的将发布包通过cmd文件发布到了IIS中. 并且已经将需要替换的部分替换成正确的值.
以上就是通过VisualStudio 2010的发布功能来发布Web Application.