API Client do TFS não está mais no GAC

Portando scripts e server plugins do TFS2013 para o TFS2015, descobri que as dlls da API Client do TFS (Object Model) não ficam mais no GAC. Eles removeram todas as dlls do GAC e agora existem um Nuget Package com versões da api para diversos usos, que deve ser importado sempre que for criar algum código utilizando o Object Model Client do TFS.​

https://www.visualstudio.com/docs/integrate/get-started/client-libraries/dotnet

​A justificativa foi para permitir que processos rodando na maquina possam apontar para diferentes versões da api. Quando essas dlls estão no GAC, o processo normalmente utiliza a versão que está no GAC (comportamento padrão do windows).

fonte: ​http://stackoverflow.com/questions/30138669/where-can-i-find-microsoft-teamfoundation-build-client-in-visual-studio-2015​

Uma importante consequência dessa mudança é que ao construir customizações, mais dlls terão que fazer parte da solução. Antes apenas era preciso referenciar as dlls que eram necessárias para compilar, e durante o runtime se houvesse alguma dependência ela era carregada do GAC automaticamente.

As dlls que possuem as dependências de código e também suas dependências terão que ser incluídas no projeto para não ter problemas durante o runtime. Se for um Server Plugin até que não irá haver essa necessidade, já que o código roda no processo do TFS.

Se for rodar em um processo fora do TFS (ex. script powershell), será preciso incluir as dlls e suas dependências. Felizmente, para facilitar nossa vida, os caras criaram o pacote Nuget que já traz tudo que é preciso.

Olhe a quantidade de dlls (mais de 30!!!). E devem todas serem empacotadas e distribuidas juntamente com a solução.

UPDATE: Não é apenas a questão do GAC, no TFS2015 tivemos várias mudanças estruturais nas APIs do TFS.

O artigo a seguir explica um pouco disso:

http://blogs.msdn.com/b/buckh/archive/2015/08/10/nuget-packages-for-tfs-and-visual-studio-online-net-client-object-model.aspx​