【问题标题】:Where is svcutil.exe in Windows 7?Windows 7 中的 svcutil.exe 在哪里?
【发布时间】:2011-06-20 01:38:35
【问题描述】:

对于我的 WCF,我需要为我的客户端应用程序生成配置文件,以指定诸如服务绑定、服务地址和合同之类的内容。

【问题讨论】:

    标签: wcf


    【解决方案1】:

    输入Microsoft Visual Studio Command Promptwhere svcutil.exe。在我的机器上它位于:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe

    【讨论】:

    • 我明白了。打开 Visual Studio 命令提示符,然后输入“where svcutil.exe”。我的在下面:c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NetFX 4.0 Tools\SvcUtil.exe 或 c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\SvcUtil.exe
    • 命令提示符本身可以在Visual Studio 2015\Visual Studio Tools\Developer Command Prompt for VS2015 下的开始菜单中找到(至少对于 Visual Studio 2015)。
    • 如果您尝试安装 SDK 的 v 7.1(并且您恰好在 Windows 7 x64 上),似乎 MS 已从中删除 svcutil.exe。无论您是跳过所有的障碍来绕过安装错误,还是下载 ISO,它都无处可寻,它只是不存在。这浪费了我一天中的大约 3 个小时……谢谢 MS。他们为什么要删除它?不知道。无论如何,我能够使用 Chocolatey 从这里安装 6.1 版本的 SDK,它仍然包含 svcutil.exe(在 bin 文件夹中):chocolatey.org/packages/windows-sdk-6.1
    【解决方案2】:

    使用最新版本的 windows(例如 Windows 10,其他服务器),键入/搜索“开发人员命令提示符..”它将弹出 Visual Studio 版本的相关命令提示符。

    例如VS 2015 的开发者命令提示符

    更多https://msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx

    【讨论】:

    • 那应该和VS集成。
    【解决方案3】:

    如果您使用的是 vs 2010,那么您可以将其放入

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

    【讨论】:

      【解决方案4】:

      尝试使用命令通过SvcUtil.exe生成代理类

      语法:

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

      例子:

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

      要检查服务是否可用,请在没有 myService1 后缀的情况下尝试在您的 IE URL 中尝试

      【讨论】:

      • 生成代理类的目的是什么?如果我将服务引用添加到 C# 项目,它似乎会为我生成它?
      • 用于数据反序列化。您可以将服务引用添加到项目中,但在我看来,将其作为自己生成的类的解决方案似乎更加清晰。例如,如果您正在使用验证或映射。此外,当结构经常更改时,重新生成引用总是会造成很多麻烦。
      【解决方案5】:

      查找任何文件位置

      1. 在windows开始菜单搜索框
      2. 输入 svcutil.exe
      3. 等待结果填充
      4. 右键单击 svcutil.exe 并选择“打开文件位置”
      5. 复制 Windows 资源管理器路径

      【讨论】:

      • 在我的系统上不起作用,即使 svcutil 存在于四个位置。
      • @JohnL4,您可能需要考虑扩展 Windows 搜索实用程序的位置。您可以通过打开控制面板->索引选项并单击修改按钮将其他文件夹添加到索引位置来执行此操作。 (在这种情况下,“程序文件”或“程序文件(x86)”似乎不在您的“包含位置”的当前列表中)
      【解决方案6】:

      我认为找到 Svcutil.exe 的位置并不是很重要。 可以不用绝对路径直接使用Visual Studio命令提示符执行,

      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/
      

      【讨论】:

      • 其实没有。 Visual Studio 命令提示符只是在执行 cmd.exe 之前设置了一些环境变量,其中之一是 PATH。如果出于任何正当原因 svcutil.exe 不在任何 PATH 目录中,则如果没有绝对路径,则无法执行它。
      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2013-05-18
      • 2011-12-15
      相关资源
      最近更新 更多