GKelly
GKelly

Reputation: 3919

Is there any way to install tfs command line ONLY?

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).

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.

Upvotes: 3

Views: 2308

Answers (2)

Edward Thomson
Edward Thomson

Reputation: 78623

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.

Upvotes: 4

John Saunders
John Saunders

Reputation: 161773

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.

Upvotes: 1

Related Questions