2010-02-08 77 views
2

下列情況下更換項目引用:團隊建設 - 以DLL的

  • 2團隊項目
  • 隊Dvelop項目A加入團隊項目B的項目引用到自己的項目。

爲了加速構建我想用直接引用dll的方式替換項目引用。

我的想法:

<ProjectReference Condition="'$(IsDesktopBuild)' == 'true'" Include="[Project Reference] >... 

在TFSBuild.proj

<AdditionalReferencePath Include="[buildoutputOfTeamProjectB]" /> 

OR

禁用SolutionToBuild和使用的csproj文件:

在團隊項目A的的csproj

直。

感謝您的建議。

回答

0

我會建議每個項目都有一個依賴文件夾,其中包含每個項目所需的相應dll。當建立一個依賴的項目時,它將由您自動更新依賴項文件夾中的dll或不通過您的構建過程(巡航控制/ nant/msbuild?)。不過,我也會考慮部署依賴於dll的版本,以防萬一你破壞了該dll的相關項目用法。它會吸引某人更新他們的項目(取決於項目),啓動一個構建,將他們的構建輸出部署到依賴項目中),以打破依賴於他們代碼庫的項目。這聽起來像是一種管理依賴關係的脆弱方式。

+0

嗨安德魯,我們正在使用MSBuild/TFSBuild。開發人員希望使用項目引用來更容易地更改lib項目,而無需切換2個解決方案。但是這會導致TFS過度的構建過程。因此,我需要一種方法來從csproj文件中刪除項目引用,並將它們替換爲dll引用。 – mawl 2010-02-08 16:24:56

+0

我們已經有一個共享buildoutput的文件夾,但是當我使用IsDesktopBuild Condition刪除projectreferences時,似乎無法配置使用它們的csproj。 – mawl 2010-02-08 16:27:24

+0

我們目前正在做的是有專門的解決方案。在你的情況下,你可能有一個ProjectA解決方案,一個ProjectB ...和一個包含ProjectA和ProjectB的解決方案。擁有多個解決方案不應該是一個問題。您的本地構建腳本可能會根據環境來生成您的項目/解決方案文件,而不是在您的項目文件中使用較酷的邏輯。瞭解構建的運行環境比將嵌入邏輯嵌入項目文件更簡單! – 2010-02-08 21:50:11