12

Mi piacerebbe eseguire WcfTestClient (uno incluso in VS2012) su una macchina diversa senza installare VS2012. È possibile? Sulla macchina Ho installato .NET 4.5, ma quando provo ad aggiungere servizi web che mi dà il seguente stack trace:Impossibile aggiungere il servizio in WcfTestClient quando si copia su una macchina diversa

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

Nella cartella WcfTestClient ho solo 2 file, c'è qualche altro file di cui ho bisogno includere? WcfTestClient.exe WcfTestClient.exe.config

Entrambi vengono copiati direttamente dalla cartella IDE VS2012.

+1

Lo stesso per me e nessun indizio. – abatishchev

+0

Hai provato a utilizzare [Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) per vedere quali DLL sta caricando il client di test? Potrebbe darti un indizio su cosa potresti perdere. – Tombala

+0

Heh, in effetti sta analizzando la traccia dello stack, sta tentando di leggere le voci specifiche del Registro di sistema di SDK. Non c'è SDK WCF penso e viene fornito con VS, quindi potresti essere sfortunato. – Tombala

risposta

4

WCFTestClient deve essere eseguito su un computer con l'SDK installato. Non solo appare nel registro per trovare la posizione dell'SDK, ma esegue anche il svcutil dall'SDK per generare le classi proxy da connettere in fase di runtime.

+3

Durante lo sviluppo di un servizio WCF .Net 4.0 su Windows 7 utilizzando VS2012 Pro (aggiornamento 4), ho scoperto che era necessario installare [Windows 8.0 SDK] (http://msdn.microsoft.com/en-us/windows/desktop/ hh852363.aspx), non il [Windows 7 SDK] (http://www.microsoft.com/en-ca/download/details.aspx?id=8279) come potrebbe altrimenti assumere. –

+0

@MattDonald devi metterlo in una risposta separata, quindi posso votare per questo. – Avram

+1

@Avram Risposta separata creata! –

2

Durante lo sviluppo di un servizio WCF .Net 4.0 su Windows 7 utilizzando VS2012 Pro (aggiornamento 4), ho trovato che avevo bisogno di installare l'SDK di Windows 8.0, non l'SDK di Windows 7 come altrimenti si potrebbe supporre. (Aggiunta questa risposta per sostituire il mio commento precedente).