12

Ich möchte WcfTestClient (einer, der in VS2012 enthalten ist) auf einem anderen Computer ausführen, ohne VS2012 zu installieren. Ist das möglich? Auf der Maschine habe ich .NET 4.5 installiert, aber wenn ich versuche, Web-Services hinzufügen es gibt mir die folgende Stack-Trace:WcfTestClient kann nicht hinzugefügt werden, wenn auf einen anderen Computer kopiert wird

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

Im WcfTestClient Ordner nur zwei Dateien haben, ich ist es noch andere Dateien, die ich brauche einschließen? WcfTestClient.exe WcfTestClient.exe.config

Beide werden direkt aus dem VS2012 IDE-Ordner kopiert.

+1

Das gleiche für mich und keine Ahnung. – abatishchev

+0

Haben Sie versucht, [Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) zu verwenden, um zu sehen, welche DLLs der Testclient lädt? Das könnte Ihnen einen Hinweis darauf geben, was Sie möglicherweise vermissen. – Tombala

+0

Heh, schaut man sich die Stack-Trace an, versucht es SDK-spezifische Registry-Einträge zu lesen. Es gibt kein WCF SDK, denke ich und es kommt mit VS, so dass Sie vielleicht kein Glück haben. – Tombala

Antwort

4

Der WCFTestClient muss auf einem Computer mit installiertem SDK ausgeführt werden. Es sucht nicht nur in der Registrierung nach dem Speicherort des SDK, sondern es führt auch den SVCutil aus dem SDK aus, um die Proxy-Klassen zu generieren, die zur Laufzeit verbunden werden.

+3

Bei der Entwicklung eines .Net 4.0 WCF-Dienstes unter Windows 7 mit VS2012 Pro (Update 4) musste ich das [Windows 8.0 SDK] installieren (http://msdn.microsoft.com/en-us/windows/desktop/ hh852363.aspx), nicht das [Windows 7 SDK] (http://www.microsoft.com/en-ca/download/details.aspx?id=8279), wie man sonst annehmen könnte. –

+0

@MattDonald müssen Sie es auf separate Antwort setzen, damit ich dafür stimmen kann. – Avram

+1

@Avram Separate Antwort erstellt! –

2

Bei der Entwicklung eines .Net 4.0 WCF-Dienstes unter Windows 7 mit VS2012 Pro (Update 4) musste ich das Windows 8.0 SDK installieren, nicht das Windows 7 SDK, wie man es sonst vermuten würde. (Diese Antwort wurde hinzugefügt, um meinen vorherigen Kommentar zu ersetzen).

Verwandte Themen