2012-02-15 113 views
0

這可能不是一個Microsft.Practices的具體問題(可能不是但不是100%肯定),但它似乎只發生在這(企業圖書館和統一)。Microsoft.Practices和TFS構建

基本上,我們有定製版本的EntLib(和uncustomized版本的Unity),我們在二進制引用位置。我們在同一地點也有一些內部共享的二進制文件。

當我通過TFS構建所有內部庫時,從共享位置複製,但EntLib和Unity dll從服務器上的安裝位置(而不是共享位置)複製。我已驗證EntLib dll處於正確的共享位置。

任何想法爲什麼會發生這種情況?

更新:

進一步尋找後,它看來,如果一個dll當時並沒有修改很拉GAC版本,無論在哪裏的參考點。這意味着如果我在GAC中有hell.dll並且引用了c:\ hell.dll,那麼它將採用GAC版本,除非c:\ dll.hell已更改。任何人都可以證實這是我所看到的行爲嗎?

+0

哪個版本的TFS? – 2012-02-15 15:35:08

+0

Team Foundation Server 2010 – 2012-02-15 15:43:26

回答

4

您關於從GAC中提取的發現是正確的。無論參考點在哪裏,如果StrongName匹配(名稱,版本,公鑰標記),標準.NET探測將始終從GAC中提取某些內容。我認爲最好的做法是在構建期間保留您可能構建或引用的內容,並希望完全控制Dev/Build計算機上的GAC。