1. 程式人生 > >tfs 2013 利用 web deploy 完成asp.net站點自動發布

tfs 2013 利用 web deploy 完成asp.net站點自動發布

pat tegra 單元測試 常見問題 yii edit 事先 遠程 build

課題起因: 目前我們團隊使用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)AutoScripts\DefaultConnection_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)\MSBuild\Microsoft\VisualStudio”文件夾,到 tfs所在機器相同目錄。可事先備份老目錄。如果不進行此步操作,會出現缺失文件的錯誤。
  • 配置自動生成配置文件
    打開 visual studio 2013 的 asp.net 項目(團隊項目),點擊“生成”。 以下是重要部分截圖。
    技術分享圖片

    技術分享圖片

    技術分享圖片

    技術分享圖片


    上一張圖片中 MSBuild 參數 : /p:DeployOnBuild=True;PublishProfile=webapp01;AllowUntrustedCertificate=true;Password=pwd
    該參數是自動發布的關鍵部分 。 PublishProfile=webapp01 是 pubxml 文件的名稱 ,見本文第一張圖片,Password=pwd 是 iis 發布用戶的密碼, 用戶名 就在 pubxml 文件中。
  • 至此, 所有配置完成。
  • 測試
    修改項目文件並簽入,系統會自動編譯發布。
技術分享圖片 擴展知識: 如果想在編譯發布前執行單元測試,就不能在“過程”中使用“默認模板” ,而要使用 自定義生成過程模板

tfs 2013 利用 web deploy 完成asp.net站點自動發布