2016-02-16 23 views
0

我有一個控制檯應用程序,我使用Visual Studio Build在本地tfs 2015上構建。我想實現的是:使用TFS/RM 2015環境變量/自定義配置

如果在正常開發過程中在開發機器上執行應用程序,將會出現一個簡單的消息「Hello Developer」,並且如果它在qa環境中部署並且測試人員從那裏運行它它應該打印「Hello Tester」。只是一個簡單的演示。

所以我想我需要一個App.config來存儲一個配置,這個配置在構建過程中不會改變。我有信心,這是一個沒有道理,因爲我發現很多網站描述這樣的事情,但事實證明,他們都沒有透露像

  • 如何App.config需要看看喜歡?
  • C#代碼中使用的變量如何?
  • 發佈管理客戶端需要的設置是什麼?
  • 本地TFS構建定義中需要的設置是什麼?

或被過時(TFS 2013 (1)RM Client 2013 (2))或使用Visual Studio Online/ Team Services或使用custom tasks

有人可以解釋我,如何實現描述的場景「Hello Developer」/「Hello Tester」?

非常感謝!

回答

1

我們使用MSDeploy進行此類設置。您可以通過將csproj文件中的Import行添加到項目中的新.targets文件來擴展MSBuild。引用MSDeploy任務並使用它爲控制檯應用程序創建MSDeploy包。最後,創建參數化文件,以便爲每個環境定義您想要轉換的配置部分以及適當的消息的SetParameters文件。

This blog post用於數據庫項目,但基本步驟相同。

在RM內部,您可以使用MSDeploy通過PowerShell命令通過適當的SetParmeter文件對目標服務器進行部署。

enter image description here

+0

嗨,首席,感謝您的回答和鏈接。但看看上面提到的TFS2013鏈接(http://blogs.msdn.com/b/tfssetup/archive/2015/10/15/tokenization-with-release-management.aspx)我希望有更好的方法來在tfs 2015中實現這樣的控制檯應用程序。在你提到的方法中,我不喜歡一些東西:硬編碼路徑到dll(MSBuildExtensionsPath)\ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll)並且沒有真正的工具用法。 (例如,在TFS2013鏈接的發佈管理客戶端中配置了構建設置後)沒有其他更新了嗎? – timtos

+1

我認爲新的構建系統比2013年好得多。我的評論-http://dotnetcatch.com/2016/01/20/review-vsts-release-management-vnext/雖然目前尚未在TFS 2015上發佈。您可以看到VSTS中的所有功能,這些功能將在未來一兩個月內發送到TFS。總的來說,我同意硬編碼DLL是一個壞主意,但是這個特定的程序集提供VisualStudio,可以假定它將在構建代理上。 – chief7

0

你有沒有試着用SlowCheetah

此包允許您在Visual Studio中按F5時自動轉換app.config(或 任何文件)。您可以根據構建配置進行不同的 轉換。這將使您 可以輕鬆地爲 調試版和發佈版提供不同的應用程序設置,連接字符串等。如果你想轉換其他文件,你也可以做 。

+0

感謝您的輸入!我沒有真正嘗試過。只讀一點關於它。但它似乎不適合發佈管理方案。我想我會先嚐試'Tokenizer':https://msdn.microsoft.com/Library/vs/alm/Release/examples/azure/change-config-azure-webapps – timtos