.net 复制到其他计算机时,无法在WcfTestClient中添加服务

.net 复制到其他计算机时,无法在WcfTestClient中添加服务,.net,wcf,visual-studio-2012,exception-handling,wcftestclient,.net,Wcf,Visual Studio 2012,Exception Handling,Wcftestclient,我希望在不同的计算机上运行WcfTestClient(VS2012附带的一个客户端),而不安装VS2012。这可能吗?在我安装了.NET 4.5的计算机上,但当我尝试添加web服务时,它会提供以下堆栈跟踪: ************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.

我希望在不同的计算机上运行WcfTestClient(VS2012附带的一个客户端),而不安装VS2012。这可能吗?在我安装了.NET 4.5的计算机上,但当我尝试添加web服务时,它会提供以下堆栈跟踪:

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Tools.Common.SdkPathUtility.GetRegistryValue(String registryPath, String registryValueName)
   at Microsoft.Tools.Common.SdkPathUtility.GetSdkPath(Version targetFrameworkVersion)
   at Microsoft.Tools.TestClient.ToolingEnvironment.get_MetadataTool()
   at Microsoft.Tools.TestClient.ServiceAnalyzer.GenerateProxyAndConfig(String projectPath, String address, String configPath, String proxyPath, Int32 startProgressPosition, Int32 endProgressPostition, BackgroundWorker addServiceWorker, String& errorMessage)
   at Microsoft.Tools.TestClient.ServiceAnalyzer.AnalyzeService(String address, BackgroundWorker addServiceWorker, Single startProgress, Single progressRange, String& errorMessage)
   at Microsoft.Tools.TestClient.Workspace.AddServiceProject(String endpoint, BackgroundWorker addServiceWorker, Single startProgress, Single progressRange, String& error)
   at Microsoft.Tools.TestClient.AddServiceExecutor.Execute(AddServiceInputs inputs, Workspace workspace, BackgroundWorker addServiceWorker)
   at Microsoft.Tools.TestClient.UI.MainForm.addServiceWorker_DoWork(Object sender, DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
在WcfTestClient文件夹中,我只有2个文件,是否还有其他文件需要包含? WcfTestClient.exe WcfTestClient.exe.config


两者都是直接从VS2012 IDE文件夹复制的。

必须在安装了SDK的计算机上运行WCFTestClient。它不仅在注册表中查找SDK的位置,还从SDK中运行svcutil以生成代理类以在运行时连接。

在使用VS2012 Pro(更新4)在Windows 7上开发.Net 4.0 WCF服务时,我发现我需要安装Windows 8.0 SDK,而不是Windows7SDK,否则人们可能会认为。(添加此答案以替换我之前的评论)。

响应有点晚,但不需要在目标计算机上安装SDK

您只需要复制一些文件并确保存在一个注册表项

本地安装VS 2015(v14.0):

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
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*.*
来自本地安装的Windows SDK(v10):

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
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*.*
注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86  (just ensure all keys exists, no content needed)

这里的完整解释:(最后一个回答,作者:Jakub Bereżański)

对我来说也是一样,没有任何线索。您是否尝试使用它来查看测试客户端正在加载哪些DLL?这可能会给你一个关于你可能缺少什么的线索。嘿,实际上,在查看堆栈跟踪时,它正在尝试读取特定于SDK的注册表项。我认为没有WCF SDK,它随VS一起提供,所以你可能会运气不好。在使用VS2012 Pro(更新4)在Windows 7上开发.Net 4.0 WCF服务时,我发现我需要安装,而不是像人们可能认为的那样。@MattDonald你必须将其放在单独的答案中,以便我可以投票支持它。@Avram创建了单独的答案!