Introduction

There are times when you need to use the WCF test client in places where Visual Studio is not installed, namely a production server or a non-developer machine at times. There is a post on StackOverflow that addresses this exact concern: http://stackoverflow.com/questions/6340082/downloading-wcf-test-client-without-vs However as time moves on the answers are becoming a little outdated; and if you work at an organization like I do where the network security is above average, bordering insane, then you cannot just download anything you want as it is blocked. I cannot download files from google drive or one drive. Therefore I had to recreate a portable WCF test client for myself yesterday following the instructions that are provided on the stack overflow post and msdn forum. I just want to document what I did so I can re-reference it later if needed.

Before we get started

The whole point here is to produce a transportable copy of the WCF test client so that you don’t need Visual Studio to be installed where you are trying to perform your WCF test. There is just one ironic caveat here – you absolutely need a machine that has Visual Studio installed in order to actually produce a transportable copy of the WCF test client. Therefore if you don’t have a machine where this can be done, then you are doomed to download a copy of the WCF test client – hopefully that is an option for you. Even the strongest network security cannot thwart the following efforts at times (depends on how insane your company’s security is):

  1. Temporarlily hosting files on a web server
  2. FTP in some cases
  3. Downloading files to your phone and moving them over using any method you can think of
  4. Email if the files are small enough
  5. IM clients
  6. USB drives
  7. Portable hard drives

I am not advocating doing anything illegal or something that will violate your company’s workplace policies, but at the same time some of these restrictions are so suffocating we, as developers, cannot get our jobs done. Not being able to simply download the WCF Test Client from the web is a good example of this – therefore the work around is I have to create it myself.

Your version of Visual Studio dictates what you need to do

The following table is a transformation of information from this post here: https://social.msdn.microsoft.com/Forums/vstudio/en-US/c3c7221c-c06f-4364-887a-fb20f22877be/wcf-test-client-problem I am giving credit where credit is due to Jakub Berezanski who aggregated this very useful information. Thank you to goes to him.

Visual Studio Version Required Files Batch file Required registry key
2012 11.0 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WcfTestClient.exe XCOPY /Y “C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WcfTestClient.exe” “.\” HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll XCOPY /Y “C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcConfigEditor*.* XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcConfigEditor*.*” “.\”
2013 12.0 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WcfTestClient.exe XCOPY /Y “C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WcfTestClient.exe” “.\”
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll XCOPY /Y “C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll” “.\” HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools-x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcUtil.exe XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcUtil.exe” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcConfigEditor*.* XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\SvcConfigEditor*.*” “.\”
2015 14.0 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\WcfTestClient.exe XCOPY /Y “C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\WcfTestClient.exe” “.\”
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll XCOPY /Y “C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.VirtualTreeGrid\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.VirtualTreeGrid.dll” “.\” HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcUtil.exe XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcUtil.exe” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcConfigEditor*.* XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcConfigEditor*.*” “.\”
15 Preview 15.0 C:\Program Files (x86)\Microsoft Visual Studio 15.0\Common7\IDE\WcfTestClient.exe XCOPY /Y “C:\Program Files (x86)\Microsoft Visual Studio 15.0\Common7\IDE\WcfTestClient.exe” “.\” HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86
C:\Program Files (x86)\Microsoft Visual Studio 15.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.VirtualTreeGrid.dll XCOPY /Y “C:\Program Files (x86)\Microsoft Visual Studio 15.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.VirtualTreeGrid.dll” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcUtil.exe XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcUtil.exe” “.\”
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcConfigEditor*.* XCOPY /Y “C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\SvcConfigEditor*.*” “.\”

How to do this, using a Visual Studio 2015 (v14.0) installation

I wrote a batch file that will copy down the files for me and in my opinion the registry keys are the most complicated part. Therefore the steps are as follows:

  1. Copy down the required files according to the above table
  2. Export the required registry keys
    1. I recommend just exporting the x86 and x64 versions of the registry keys. I highly doubt having both will brick your machine because something has to be looking for those keys in order to actually flip out. Therefore this is pretty harmless. If you are paranoid then just stick to your box’s architecture.
    2. I strongly recommend including the “InstallationFolder” key and setting it to literally what you see here: “\\” – when I didn’t include this I got a run time error. In Jakub’s post, he says you don’t need it, this is where we disagree. Whatever – this is all by trial and error.
  3. Copy all of the files you copied from your development machine to the target machine.
  4. Copy over the registry export file and just double click on it in order to add those keys
  5. Run the WcfTestClient.exe and you should be good to go

Supporting example

Here is an example of the batch file to execute. Take notice that it will copy the files to the current directory. You can change this if you want. Copy this as is into a text file and give it a *.bat extension. Double click to run.

Here is an example of the exported registry values for Visual Studio 2015 (v14.0). Copy this as is into a text file and give it a *.reg extension. Double click to import the keys into the target machine.

  • If it really bothers you to add all of those keys, feel free to not include them in your file.
  • Take notice that the KitsInstallationFolder and InstallationFolder keys are set to “\\”, this is the only edit I had to make. When you export them, these are actually filled in – you don’t want that on your target machine because VisualStudio is not installed, therefore it is directing the program to the current directory that the executable is running in.

Downloads

If you are able to download files freely, then you can get this data here:

One thought on “Using the WCF Test Client without Visual Studio

Leave a Reply

Your email address will not be published. Required fields are marked *