[英]TeamCity MSBuild, remap folders during deployment
我們有一個網站項目的解決方案,該項目托管在負載平衡的環境中。 目前沒有使用CI,使用zip文件> _ <手動進行部署,但是我正在設置它,但遇到了一些困難。 該解決方案需要一個App_Config文件夾,該文件夾在根目錄中包含該站點的所有配置,但是這些配置不同於每個托管服務器,其中一個是管理服務器,另一個是交付服務器。
每個單獨的服務器配置都存儲在/ Configs / servername /處的單獨文件夾中,其中包含web.config文件和App_Config文件夾。 這些已從此文件夾手動復制到根目錄,以覆蓋已經存在的目錄。 另外,也不希望部署/ Configs /文件夾。
最好不要對Visual Studio解決方案進行任何更改。
在TeamCity中部署之前是否可以自動執行此操作?
問候
您可能需要根據計算機名稱為屬性設置不同的值。 那是交易的把戲。
<Choose>
<When Condition=" '$(Computername)'=='MyManagementServer01' ">
<PropertyGroup>
<MyCustomProperty001>Red</MyCustomProperty001>
<MyCustomProperty002>Yellow</MyCustomProperty002>
</PropertyGroup>
</When>
<When Condition=" '$(Computername)'=='MyDeliveryServer01' ">
<PropertyGroup>
<MyCustomProperty001>Black</MyCustomProperty001>
<MyCustomProperty002>White</MyCustomProperty002>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<MyCustomProperty001>NoMatchMyCustomProperty001</MyCustomProperty001>
<MyCustomProperty002>NoMatchMyCustomProperty002</MyCustomProperty002>
</PropertyGroup>
</Otherwise>
</Choose>
您可以設置一個名為
<ConfigurationSourceFolder>/Configs/MyManagementServer01/</ConfigurationSourceFolder>
或設置一個“ DeploymentType”
<DeploymentType>ManagementServerType</DeploymentType>
您還可以在“目標”甚至“任務”上放置條件。
<MakeDir Directories="C:\MyCoolDirectory" Condition="('$(MyCustomProperty001)'!='')"/>
////////最好不必對Visual Studio解決方案進行任何更改。//////
因此,這里有一個“一般性”提示。 而不是在csproj文件中進行很多有時很難遵循的自定義更改。...使用基本的.msbuild文件。
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="AllTargetsWrapped">
<PropertyGroup>
<!-- Always declare some kind of "base directory" and then work off of that in the majority of cases -->
<WorkingCheckout>.</WorkingCheckout>
</PropertyGroup>
<Target Name="AllTargetsWrapped">
<CallTarget Targets="BuildItUp" />
</Target>
<Target Name="BuildItUp" >
<MSBuild Projects="$(WorkingCheckout)\MySolution.sln" Targets="Build" Properties="Configuration=$(Configuration)">
<Output TaskParameter="TargetOutputs" ItemName="TargetOutputsItemName"/>
</MSBuild>
<Message Text="BuildItUp completed" />
</Target>
</Project>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.