Подтвердить что ты не робот

Невозможно добавить службу в WcfTestClient при копировании на другую машину

Я хочу запустить WcfTestClient (тот, который входит в состав VS2012) на другой машине без установки VS2012. Это возможно? На компьютере я установил .NET 4.5, но когда я пытаюсь добавить веб-службы, он дает мне следующую трассировку стека:

************** 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

Оба скопированы непосредственно из папки ID2 VS2012.

4b9b3361

Ответ 1

WCFTestClient должен запускаться на компьютере с установленным SDK. Он не только ищет в реестре, чтобы найти местоположение SDK, но также запускает svcutil из SDK для создания прокси-классов для подключения во время выполнения.

Ответ 2

При разработке .NET WCF Service в Windows 7 с помощью VS2012 Pro (обновление 4) я обнаружил, что мне нужно установить SDK для Windows 8.0, а не Windows 7 SDK, как это можно было бы предположить. (Добавлен этот ответ, чтобы заменить мой предыдущий комментарий).

Ответ 3

Немного поздний ответ, но установка 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

Из локально установленного Windows SDK (v10):

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)

Полное объяснение здесь: https://social.msdn.microsoft.com/Forums/vstudio/en-US/c3c7221c-c06f-4364-887a-fb20f22877be/wcf-test-client-problem?prof=required (последний ответ, автор: Якуб Бережанский)