zoukankan      html  css  js  c++  java
  • tfs 2013 利用 web deploy 完成asp.net站点自动发布

    课题起因: 目前我们团队使用visual studio 2013开发asp.net项目, 使用tfs2013 做源码管理, 每天早上手动发布项目文件包,复制到测试服务器的站点文件夹下覆盖老文件,用此方式发布系统,甚至一天数次。低效费力。
     
    课题目的:利用 tfs 做自动发布asp.net站点,无需人工干预,能够在代码签入时或定时进行asp.net项目发布。
     
    研究结果:初步成功
     
    自动发布系统配置过程:
     
    • 环境检查
    1. 客户端: visual studio 2013 开发环境 ,能够正常连接源码服务器( tfs 2013 ),正常获取签入asp.net项目源码
    2. 源码服务器( tfs 2013 )
    3. asp.net 服务器(IIS) ,能够正常访问,能够使用项目文件包覆盖站点文件夹下老文件,并正常访问
    • 配置web deploy 发布
    1. IIS安装配置“管理服务”
      参考这篇文章的第二部分 :图文详解远程部署ASP.NET MVC 5项目  
    2. 下载并安装 web deploy ,建议使用“完全安装”。 注意安装顺序:先“管理服务”后 “web deploy”,如果反了, “web deploy”需要最后再运行安装程序使用修改功能,最终做到 “完全安装”。
    3. 测试 web deploy,使用 https://IP:8172/MsDeploy.axd 这个地址测试 web deploy ,如果弹出用户名密码对话框,则说明 “ web deploy”安装成功。 不必等待看到结果。
    4. 使用 visual studio 2013 asp.net项目 中的web deploy发布,成功发布asp.net项目到IIS的asp.net站点。  
       参考这篇文章的第三部分:图文详解远程部署ASP.NET MVC 5项目  。
      此步骤至关重要,是继续下一步工作的基石。注意:认真关注以下图片中的pubxml发布配置文件,这是发布系统的关键。
    5. 添加发布时需要添加和排除的文件的配置并测试。
      例如:排除web.config文件和fonts文件夹: 
      <ExcludeFilesFromDeployment> 
      web.config 
      </ExcludeFilesFromDeployment> 
      <ExcludeFoldersFromDeployment> 
      fonts 
      </ExcludeFoldersFromDeployment> 
      完整 pubxml 文件如下:
      <?xml version="1.0" encoding="utf-8"?> 
      <!-- 
      您 Web 项目的发布/打包进程将使用此文件。您可以通过编辑此 MSBuild 文件 
      来自定义该进程的行为。若要了解与此相关的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=208121。 
      --> 
      <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
      <PropertyGroup> 
      <WebPublishMethod>MSDeploy</WebPublishMethod> 
      <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
      <LastUsedPlatform>Any CPU</LastUsedPlatform> 
      <SiteUrlToLaunchAfterPublish>http://192.168.61.131:81</SiteUrlToLaunchAfterPublish> 
      <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
      <ExcludeApp_Data>False</ExcludeApp_Data> 
      <MSDeployServiceURL>192.168.61.131</MSDeployServiceURL> 
      <DeployIisAppPath>test1</DeployIisAppPath> 
      <RemoteSitePhysicalPath /> 
      <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
      <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
      <EnableMSDeployBackup>True</EnableMSDeployBackup> 
      <UserName>iispeiyu</UserName> 
      <_SavePWD>True</_SavePWD> 
      <PublishDatabaseSettings> 
      <Objects xmlns=""> 
      <ObjectGroup Name="DefaultConnection" Order="1" Enabled="False"> 
      <Destination Path="" /> 
      <Object Type="DbDacFx"> 
      <PreSource Path="Data Source=(LocalDb)v11.0;AttachDbFilename=|DataDirectory|aspnet-WebApplication4-0798e767-bdbb-48c0-b104-8b9c14b6e40c.mdf;Initial Catalog=aspnet-WebApplication4-0798e767-bdbb-48c0-b104-8b9c14b6e40c;Integrated Security=True" includeData="False" /> 
      <Source Path="$(IntermediateOutputPath)AutoScriptsDefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" /> 
      </Object> 
      <UpdateFrom Type="Web.Config"> 
      <Source MatchValue="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-WebApplication4-0798e767-bdbb-48c0-b104-8b9c14b6e40c;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-WebApplication4-0798e767-bdbb-48c0-b104-8b9c14b6e40c.mdf" MatchAttributes="$(UpdateFromConnectionStringAttributes)" /> 
      </UpdateFrom> 
      </ObjectGroup> 
      </Objects> 
      </PublishDatabaseSettings> 
      <!-- 排出部分文件或文件夹 --> 
      <ExcludeFilesFromDeployment> 
      web.config 
      </ExcludeFilesFromDeployment> 
      <ExcludeFoldersFromDeployment> 
      fonts 
      </ExcludeFoldersFromDeployment> 
      </PropertyGroup> 
      <ItemGroup> 
      <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String"> 
      <UpdateDestWebConfig>False</UpdateDestWebConfig> 
      </MSDeployParameterValue> 
      </ItemGroup> 
      </Project>
      参考技术文献:用于 Visual Studio 和 ASP.NET 的 Web 应用程序项目部署常见问题
    • 配置tfs 自动发布
    1. tfs安装“生成配置”
    2. 无需任何设置
    3. tfs所在机器安装 web deploy  
    4. 复制 visual studio 2013 所在电脑的“C:Program Files (x86)MSBuildMicrosoftVisualStudio”文件夹,到 tfs所在机器相同目录。可事先备份老目录。如果不进行此步操作,会出现缺失文件的错误。
    • 配置自动生成配置文件
      打开 visual studio 2013 的 asp.net 项目(团队项目),点击“生成”。 以下是重要部分截图。









      上一张图片中 MSBuild 参数 : /p:DeployOnBuild=True;PublishProfile=webapp01;AllowUntrustedCertificate=true;Password=pwd
      该参数是自动发布的关键部分 。 PublishProfile=webapp01 是 pubxml 文件的名称 ,见本文第一张图片,Password=pwd 是 iis 发布用户的密码, 用户名 就在 pubxml 文件中。
    • 至此, 所有配置完成。
    • 测试
      修改项目文件并签入,系统会自动编译发布。
     
    扩展知识:
    如果想在编译发布前执行单元测试,就不能在“过程”中使用“默认模板” ,而要使用 自定义生成过程模板
  • 相关阅读:
    [备忘录]Download Google Drive Files using wget
    RangeNet++ spheracal projection的理解
    k8s容器的命名规则
    5分钟让你知道什么是PKI
    Kubernetes 学习15 kubernetes 认证及serviceaccount
    Kubernetes 学习10 Service资源
    SQL优化技巧
    一文看懂 MySQL 高性能优化技巧实践
    MySQL表的碎片整理和空间回收小结
    详谈 MySQL Online DDL
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/9063784.html
Copyright © 2011-2022 走看看