2014-01-22 71 views
5

想知道在TFS 2012中構建項目時是否有sln或csproj文件之間的偏好。我們通常在TFS中構建sln文件以支持我們的開發團隊,這通常是標準,但是有一個團隊問爲什麼我們無法構建而不是在TFS中的csproj文件。TFS 2012 Build:sln或csproj?

我注意到要構建csproj文件,您必須在MSBuild參數字段中爲TFS構建定義提供參數,並且在構建解決方案文件時不必提供這些參數。所以除了這個小細節之外,我不確定構建sln和csproj之間的優缺點。

有人可以談談在TFS中構建sln vs csproj的好處,優缺點嗎?有沒有一種常見的做法,一個標準,還是它真的很重要?

回答

2

只是想知道是否有SLN或的csproj文件之間的偏好 在TFS 2012年建設項目時,我們通常建立在 TFS SLN文件來支持我們的開發團隊,這就是通常的標準,而是一個 隊問爲什麼我們不能在TFS中創建csproj文件。

他們爲什麼要這樣做?在這項調查中是否存在某種優勢?

我注意到,建立你必須在 的MSBuild的參數字段提供參數的文件的csproj爲TFS生成定義,你不 有構建一個解決方案文件時提供這些參數。所以 以外的這個小細節我不確定建立sln vs csproj之間的優缺點是什麼 。

.sln是一個主項目,在運行時將轉換爲msbuild腳本,並將使用與解決方案中的.csproj項目具有相同架構的元數據文件。

要查看我在說什麼,打開命令提示符,鍵入「SET MSBUILDEMITSOLUTION = 1」,然後「msbuild.exe solution.sln」,然後解析新的「solution.metaproj」和「solution.metaproj。 tmp「文件。

可有人請闡明的好處,優點/的 建設SLN VS的csproj在TFS利弊一些光,有一種普遍的做法,一個 標準,或者是否真的重要?

.csproj是一個單獨的項目,而.sln是項目的集合。構建一個.csproj將生成該項目的輸出二進制文件(以及相關性),構建整個解決方案將產生整個解決方案的輸出。

+0

嗨,尼克,感謝您的意見。我其實很熟悉sln和csproj文件之間的區別,但只是想知道在做TFS構建時是否有構建sls文件比csproj更好的好處。意思是,如果有一個項目(不是多個項目),TFS 2012版本的首選文件(sln或csproj)是什麼?有沒有一個標準的做法呢?希望這是有道理的。 – Keith

1

我有同樣的問題。構建時間可能會稍微慢一點,但我沒有自己測試過(可能是一個可以忽略的差異)。我相信,當您使用解決方案文件構建時,它會自動將「BuildInParallel」設置爲true。

Faster Buidls with MSBuild

0

我目前工作的TFS 2012部署構建。根據我的經驗,除非真正需要,否則不必提供MSBuild參數。

讓我們下面的例子:你有2個項目的解決方案,

Soln 
> Web Proj 1 
> Console Proj 2 
> Dependency Library Folder 

情況下,1:構建SLN

一個。在源設置中,您只需提及您的解決方案文件夾。 MSBuild將自動處理解決方案中的任何依賴關係。

b。在流程 - >要構建的項目中,您必須提及您的解決方案文件。

c。例如,如果您的解決方案有一個web項目,那麼MSBuild的輸出將如下圖所示,

\\<build server> \d$\Builds\<Build Name>\<Build File Name>_20141210.6\_PublishedWebsites\<web proj> 

案例2:構建的csproj

一個。在源代碼設置中,您只需單獨提及您的csproject文件夾以及依賴項文件夾路徑。

b。在進程中 - >要構建的項目,您必須提及您的csproject文件。

如果您正在尋找更具體的東西,請告訴我們。