2013-05-01 63 views
30

我想讓我的TFS Build創建與我爲我的構建選擇的配置相關聯的web.config轉換。當我運行構建時,我檢查web.config文件沒有應用轉換。當我從VS2012發佈時,轉換正常運行。TFS 2012和web.config轉換

我已經建立了TFS 2012(更新2),並有一個單獨的服務器構建。我沒有在構建服務器上安裝VS2012,但是我將C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web和WebApplications文件夾和文件從我的開發機複製到構建服務器。

我已經在我的項目創造了一些配置,並增加了一些tranforms到相關網頁。{}配置名稱的.config。

我創建了一個構建和設置項目,以建立 - 配置構建於我的項目中配置之一。我注意到它只有Debug和Release,它沒有我創建的任何配置。 (方問題:這是否正確,還是應該顯示我創建的所有配置?)

於是我運行構建和檢查輸出文件夾和web.config中沒有應用的變換。還有什麼我需要做的?

回答

2

您可以在「要構建的項目 - >要構建的配置」列表中鍵入配置的名稱。

如果不幫助,嘗試添加下面的MSBuild參數:/ P:TransformConfigFiles =真(3.高級 - >的MSBuild參數)

37

就扔/ P:TransformConfigFiles =真上不會有實際上做任何事。

您還需要這個目標添加到項目文件:

<Target Name="TransformConfigFiles" AfterTargets="AfterBuild" Condition="'$(TransformConfigFiles)'=='true'"> 
    <ItemGroup> 
     <DeleteAfterBuild Include="$(WebProjectOutputDir)\Web.*.config" /> 
    </ItemGroup> 
    <TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" /> 
    <Delete Files="@(DeleteAfterBuild)" /> 
</Target> 

這是我的源:http://blog.degree.no/2012/03/automatic-config-transformations/

+0

對我的作品!而且,您的代碼示例甚至可以修復該博客文章中的錯字(在兩處留下\ out)。 – Abacus 2015-04-14 16:04:16

+1

在構建過程中將這些行添加到csproj文件後,出現錯誤:找不到「TransformXml」任務。 如果有人會有相同的,你可以在此目標之前添加此項 Vitalii 2015-09-24 07:15:16

+0

很好,這對我有用(VS2015,TFS2015)! 非常感謝!然而,僅僅指定構建配置是不夠的...... MS有時會做出奇怪的實現...... – Vladislav 2017-02-27 17:19:05

1

右鍵單擊您的解決方案文件,進入屬性,單擊配置屬性,然後單擊配置經理在頂部。確保正確設置不同環境的配置。如果設置不正確,請正確設置並檢查代碼。現在轉到您的構建模板並檢查配置以在流程選項卡中構建屬性,您必須能夠看到您的不同配置。如果配置已正確設置,則還可以通過在構建屬性中鍵入新配置名稱來添加新配置名稱。

注意:您也可以右鍵單擊您的web.config轉換文件並選擇預覽轉換並確保轉換配置工作正常。

,你也可以給發佈配置文件名,如果是正常的詮釋,他的MSBuild參數部分

/p:DebugSymbols=false;DebugType=None;DeployOnBuild=true;PublishProfile=Stage