3

I have a CI build server configured for Java and .NET projects and am trying to integrate a new project to the server. Unfortunately, this project uses TFS (2008) for its SCM.

Before it's said, I know TFS provides build capability, but we are trying to standardize on build infrastructure and the first step is having all projects built through the same web services (Jenkins in this case).

I need to install TFS to the build server, so I downloaded the TeamExplorer client, an ISO just under 400Mb in size. When I tried installing from the ISO, it doesn't offer optional install components, and comes up with a large list of components it will install (most will never be used on this server, AFAIK).

  • Microsoft Visual Studio 2008 Shell (integrated mode)
  • Microsoft Visual Studio Tools for Microsoft Office system (version 3.0 Runtime)
  • Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime
  • Microsoft Document Explorer 2008
  • Microsoft Visual Studio 2008 Team Explorer
  • Microsoft Office System 2003 Primary Interop Assemblies

It seems very much overkill to install the full Visual Studio UI, and all attendant stuff as I will only ever be calling the CLI TFS client. Is that all necessary for the CLI utility?

Is it possible to get just the assemblies required for command line TFS? Or is it possible to install only the CLI from the ISO?

I know there is a similar question here, with a list of the minimum files to copy for a working command line TFS in ijprest's answer, but I don't want to install a hack. I'd prefer a supported install that won't cause confusion in the future.

[Edit]

Based on a couple of answers that came in, I'll explain the environment and reasoning.

The build server itself is a Windows 2008 server, but I can't build through TFS, because we are trying to create a unified CI system that will handle multiple projects.

Some projects are .NET, some Java. Some are hosted (SCM) on Subversion, some on ClearCase. This new project is hosted on TFS (so far 1 project out of 6), so TFS is in the minority here.

Politically, we cannot mandate that projects use a single set of tools. However, we're hoping that having a single build point will gently push projects into a more uniform approach (or at least push project leadership into 'talking' to each other before purchasing new tools/frameworks/etc.

So, the build server will need to be able to pull source from SCM onto a 'build' area, then perform the build (through Ant, Maven, NAnt, MSBuild, Grdle, whatever), but the important things are:

  1. The build is kicked off automatically based upon source changes (based upon polling the SCM)
  2. The build system will pull the source from SCM with no human interaction.
  3. The build will occur via convention, OR (at least) via SCM based scripts (build.xml, makefiles, etc.). The important thing is again no human interaction.
Community
  • 1
  • 1
GKelly
  • 3,835
  • 4
  • 38
  • 45
  • You may want to erase that rant - it takes you even further from the truth. In what way does installing Team Explorer (the GUI client) prevent a consistent build? The build definitions are already packaged and Team Explorer simply queues a build. In the case of a CI build, no GUI is necessary, as it would kick off as soon as code is checked in. I think you may be confused about what the "GUI component" actually consists of. – John Saunders Nov 21 '11 at 17:28
  • Got rid of it, but the rant was not about TFS, and I said that in the comment. – GKelly Nov 22 '11 at 10:45
  • Still don't get why you think you're installing the "full Visual Studio UI". – John Saunders Nov 22 '11 at 15:49
  • Possible duplicate of [How to get tf.exe (TFS command line client)?](http://stackoverflow.com/questions/5503858/how-to-get-tf-exe-tfs-command-line-client) – JohnC Nov 03 '16 at 20:42

2 Answers2

4

Technically, yes, that's the only Microsoft-supported way to install the tf.exe command-line client.

One of the big reasons that the command-line client only comes bundled with the UI components is because the command-line client actually does raise UI (unless you use the /noprompt flag.) This is so that you can basically build some easy scripts that are actually very powerful and have the ability to provide interactive workspace management, conflict resolution, etc. Obviously you won't benefit from this in your build environment, but that's why it's bundled the way it is - the command-line client does take a dependency on the UI DLLs.

If you wanted to do a Jenkins build on a non-Windows architecture, you could use the Team Explorer Everywhere command-line client, which is a cross-platform implementation of tf in Java. It has most of the same functionality of tf.exe, and is argument-compatible in most cases, and was intended to provide a scriptable cross-platform solution for build. The Jenkins TFS plug-in does support the Team Explorer Everywhere tf command-line client. However, if you were to use the TEE version of the tf command-line client on Windows, we would not provide support for this installation.

Microsoft would also not support the answer you mentioned of simply copying the necessary assemblies over.

Edward Thomson
  • 74,857
  • 14
  • 158
  • 187
  • 2
    +1 for explaining _why_ TFS requires such a large install. I've edited my original post to give the build environment. Is Team explorer everywhere available as a download anywhere that you know? – GKelly Nov 21 '11 at 10:18
  • 1
    Found TEE on http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=4240, if anyone is interested. I'll try this out and get back. Can you tell me if this is licensed separately to TFS? – GKelly Nov 21 '11 at 10:19
  • 1
    Tried downloading the TEE and it works. Integrates well with the build process we have defined. Thanks. – GKelly Nov 21 '11 at 12:33
  • TEE is licensed seperately. It's included with a Visual Studio Ultimate purchase, and it's available for standalone purchase. – Edward Thomson Nov 21 '11 at 16:18
  • 1
    Thanks. We have an MSDN license that covers the product, so we're OK on licensing. I have to be honest, the MSDN subscription is well worth the price. I'd recommend any developer for MS platforms to get it. – GKelly Nov 22 '11 at 10:49
1

The list of components you posted does not include a "full" VS UI. Visual Studio is organized as a shell plus plugins. In this case, it's installing the shell, and one plug-in (Team Explorer).

What you wind up with has no ability to create applications, or do anything other than act as a GUI client to TFS. It does not automatically give people the ability to do builds - that is given to them by the permissions you assign them in TFS. If nobody has the ability to create build definitions, or to run build definitions, then there will be no builds.

You can also simply not install the build service at all.

John Saunders
  • 160,644
  • 26
  • 247
  • 397
  • I am not trying to perform builds through TFS. All I want TFS for is to pull the source from the TFS repository. Nothing else. Possibly also generating tags for significant releases. The build itself will occur through (essentially) command line tools. Jenkins will kick off a build through NAnt, or MSBuild. – GKelly Nov 21 '11 at 09:17
  • That's why I said don't install the build service. – John Saunders Nov 21 '11 at 17:29