{"action":"opened","issue":{"url":"https://api.github.com/repos/gitextensions/gitextensions/issues/3041","labels_url":"https://api.github.com/repos/gitextensions/gitextensions/issues/3041/labels{/name}","comments_url":"https://api.github.com/repos/gitextensions/gitextensions/issues/3041/comments","events_url":"https://api.github.com/repos/gitextensions/gitextensions/issues/3041/events","html_url":"https://github.com/gitextensions/gitextensions/issues/3041","id":118259965,"number":3041,"title":"Should TFS dlls be CopyLocal? Mysterie Newtonsoft.Json v4.5","user":{"login":"EbenZhang","id":596334,"avatar_url":"https://avatars.githubusercontent.com/u/596334?v=3","gravatar_id":"","url":"https://api.github.com/users/EbenZhang","html_url":"https://github.com/EbenZhang","followers_url":"https://api.github.com/users/EbenZhang/followers","following_url":"https://api.github.com/users/EbenZhang/following{/other_user}","gists_url":"https://api.github.com/users/EbenZhang/gists{/gist_id}","starred_url":"https://api.github.com/users/EbenZhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EbenZhang/subscriptions","organizations_url":"https://api.github.com/users/EbenZhang/orgs","repos_url":"https://api.github.com/users/EbenZhang/repos","events_url":"https://api.github.com/users/EbenZhang/events{/privacy}","received_events_url":"https://api.github.com/users/EbenZhang/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-22T12:11:38Z","updated_at":"2015-11-22T12:11:38Z","closed_at":null,"body":"When `Microsoft.TeamFoundation.Build.Client.dll`(or `Microsoft.TeamFoundation.Build.Common.dll`) referenced by the TFS plugin is set to `CopyLocal`(or `Private`), the builder will copy all its dependencies to the plugins folder, such as \r\n\r\n- Microsoft.TeamFoundation.Diff.dll\r\n- Microsoft.TeamFoundation.VersionControl.Client.dll\r\n- Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll\r\n- and **Newtonsoft.Json.dll version 4.5.0**\r\n\r\n## Two problems:\r\n\r\n- When my TFS dlls are not in the GAC, the builder wouldn't copy `Microsoft.ServiceBus.dll` as this dll seems to be an implicit dependency of TFS, therefore the fragile `GetExports<IBuildServerSettingsUserControl, IBuildServerTypeMetadata>()` fails to load the plugins. This is relatively simple to fix by adding the `Microsoft.ServiceBus.Dll` to GAC.\r\n- Another problem is the TFS (not sure v11 or v12) is referencing an old version (4.5.x.x) of `Newtonsoft.Json.dll` while we are using 6.0.x.x(see #2984, which added a bindredirect from 4.5 to 6.0), so each time we build the TFS plugin, the builder will copy the old version to the plugin folder, as a result GitExtension will not able to load the build server plugins.\r\n\r\n## Fix?\r\n\r\nThe TFS dlls were not `Private`/`CopyLocal` initially when @pmiossec added the plugin. But @mnaoumov changed it for some reason I don't know (probably inadvertently).\r\n\r\nIf the TFS dlls are supposed to be in the developers'/users' GAC, then we can just set the CopyLocal property to false.\r\nOtherwise, we should add the dlls as part of the installer.\r\n\r\n"}}