Dov'è svcutil.exe in Windows 7?


105

Per il mio WCF, ho bisogno di generare un file di configurazione per la mia applicazione client per specificare cose come l'associazione del servizio, l'indirizzo del servizio e il contratto.

Risposte:


149

Digitare il Microsoft Visual Studio Command Prompt: where svcutil.exe. Sulla mia macchina è in:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe


16
Capito. Apri il prompt dei comandi di Visual Studio, quindi digita "dove svcutil.exe". Il mio è di seguito: c: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NetFX 4.0 Tools \ SvcUtil.exe o c: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcUtil.exe
nellbryant

7
Il comando promt stesso si trova nel menu di avvio sotto Visual Studio 2015\Visual Studio Tools\Developer Command Prompt for VS2015(almeno per Visual Studio 2015).
Zero3

Se stai tentando di installare la v 7.1 dell'SDK (e ti trovi su Windows 7 x64), sembra che MS abbia rimosso svcutil.exe da esso. Non si trova da nessuna parte se salti tutti i cerchi per aggirare gli errori di installazione o scarichi l'ISO, semplicemente non c'è. Ho perso circa 3 ore della mia giornata ... grazie MS. Perché dovrebbero rimuoverlo? Non lo so. Comunque sono stato in grado di installare la versione 6.1 dell'SDK, che contiene ancora svcutil.exe (nella cartella bin), utilizzando Chocolatey, da qui: chocolatey.org/packages/windows-sdk-6.1
David Barrows


18

Se stai usando vs 2010, puoi farlo entrare

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools

3

Prova a generare la classe proxy tramite SvcUtil.exe con il comando

Sintassi:

svcutil.exe /language:<type> /out:<name>.cs /config:<name>.config http://<host address>:<port>

Esempio:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceSamples/myService1

Per verificare se il servizio è disponibile, prova nel tuo URL IE dall'esempio successivo senza il suffisso myService1


qual è lo scopo di generare una classe proxy? Se aggiungo il riferimento al servizio a un progetto C #, sembra generarlo per me?
PositiveGuy

Per la deserializzazione dei dati. È possibile aggiungere il riferimento al servizio al progetto, ma la soluzione per averlo come classi generate proprie mi sembra molto più chiara. Ad esempio, se stai utilizzando convalide o mappature. Anche quando la struttura cambia spesso, la rigenerazione dei riferimenti fa sempre molto casino.
stenly

2

Per trovare qualsiasi posizione di file

  1. Nella casella di ricerca del menu di avvio di Windows
  2. digita svcutil.exe
  3. Attendi che i risultati vengano compilati
  4. Fare clic con il tasto destro su svcutil.exe e selezionare "Apri percorso file"
  5. Copia il percorso di Windows Explorer

2
Non funziona sul mio sistema, anche se svcutil è presente in quattro posizioni.
John L4

4
@ JohnL4, potresti considerare di espandere la posizione dell'utilità di ricerca di Windows. Puoi farlo aprendo Pannello di controllo-> Opzioni di indicizzazione e facendo clic sul pulsante Modifica per aggiungere altre cartelle alle posizioni dell'indice. (In questo caso, sembra che "File di programma" o "File di programma (x86)" non sia nell'elenco corrente delle "Posizioni incluse")
kmote

2

Non penso sia molto importante trovare la posizione di Svcutil.exe. È possibile utilizzare il prompt dei comandi di Visual Studio per eseguire direttamente senza il suo percorso assoluto,

Syntax:
svcutil.exe /language:[vb|cs] /out:[YourClassName].[cs|vb] /config:[YourAppConfigFile.config] [YourServiceAddress]

example:
svcutil.exe /language:cs /out:MyClientClass.cs /config:app.config http://localhost:8370/MyService/

3
In realtà no. Il prompt dei comandi di Visual Studio imposta solo alcune variabili di ambiente, una di queste è PATH, prima di eseguire cmd.exe. Se per qualsiasi motivo legittimo svcutil.exenon si trova in nessuna PATHdirectory, non è possibile eseguirlo senza percorso assoluto.
laika
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.