2012-02-15 111 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。