Onde está svcutil.exe no Windows 7?


105

Para meu WCF, preciso gerar um arquivo de configuração para meu aplicativo cliente para especificar coisas como vinculação de serviço, o endereço do serviço e o contrato.

Respostas:


149

Digite o Microsoft Visual Studio Command Prompt: where svcutil.exe. Na minha máquina está em:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe


16
Deixa comigo. Abra o prompt de comando do Visual Studio e digite "where svcutil.exe". O meu está abaixo: c: \ Arquivos de programas \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NetFX 4.0 Tools \ SvcUtil.exe ou c: \ Arquivos de programas \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcUtil.exe
nellbryant

7
O próprio prompt de comando é encontrado no menu iniciar em Visual Studio 2015\Visual Studio Tools\Developer Command Prompt for VS2015(para Visual Studio 2015, pelo menos).
Zero3

Se você está tentando instalar o v 7.1 do SDK (e por acaso está no Windows 7 x64), parece que a MS removeu o svcutil.exe dele. Não é possível encontrar em lugar nenhum, quer você salte todos os obstáculos para contornar os erros de instalação ou baixe o ISO, ele simplesmente não está lá. Isso desperdiçou cerca de 3 horas do meu dia ... obrigado MS. Por que eles o removeriam? Não sei. De qualquer forma, consegui instalar a versão 6.1 do SDK, que ainda contém svcutil.exe (na pasta bin), usando o Chocolatey, a partir daqui: chocolatey.org/packages/windows-sdk-6.1
David Barrows


18

Se você estiver usando o vs 2010, pode obtê-lo em

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

3

Tente gerar a classe de proxy via SvcUtil.exe com o comando

Sintaxe:

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

Exemplo:

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

Para verificar se o serviço está disponível, tente em seu URL do IE a partir do exemplo sem postfix de myService1


qual é o propósito de gerar uma classe proxy? Se eu adicionar a referência de serviço a um projeto C #, ele parece gerá-lo para mim?
PositiveGuy

Para desserialização de dados. Você pode adicionar a referência de serviço ao projeto, mas a solução para tê-la como próprias classes geradas parece-me muito mais clara. Por exemplo, se você estiver usando validações ou mapeamentos. Além disso, quando a estrutura muda para frequentemente, a regeneração de referências sempre causa muita confusão.
fortemente

2

Para encontrar qualquer localização de arquivo

  1. No menu iniciar do Windows Caixa de pesquisa
  2. digite svcutil.exe
  3. Espere que os resultados sejam preenchidos
  4. Clique com o botão direito em svcutil.exe e selecione 'Abrir local do arquivo'
  5. Copiar o caminho do Windows Explorer

2
Não funciona no meu sistema, embora svcutil esteja presente em quatro locais.
JohnL4

4
@ JohnL4, você pode querer expandir a localização do utilitário Windows Search. Você pode fazer isso abrindo Painel de Controle-> Opções de Indexação e clicando no botão Modificar para adicionar outras pastas aos Locais de Índice. (Neste caso, parece que "Arquivos de programas" ou "Arquivos de programas (x86)" não está na lista atual de seus "Locais incluídos")
kmote

2

Não acho que seja muito importante encontrar a localização do Svcutil.exe. Você pode usar o prompt de comando do Visual Studio para executar diretamente sem seu caminho absoluto,

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
Na verdade não. O prompt de comando do Visual Studio apenas define algumas variáveis ​​de ambiente, uma delas é PATH, antes de executar cmd.exe. Se por algum motivo legítimo svcutil.exenão estiver em nenhum PATHdiretório, você não poderá executá-lo sem o caminho absoluto.
laika
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.