Svcutil.exe для .NET 4.0? - PullRequest
       17

Svcutil.exe для .NET 4.0?

35 голосов
/ 22 апреля 2010

Я пытался использовать svcutil.exe для создания прокси-классов для службы, но когда я использую опцию /reference для ссылки на сборку, созданную для .NET 4.0, я получаю сообщение об ошибке.

Не удалось загрузить файл или сборку [...] или одну из ее зависимостей. Эта сборка создается средой выполнения, более новой, чем текущая загруженная среда, и не может быть загружена.

Похоже, я использую старую версию svcutil.exe. Я использую тот из "C:\Program Files\Microsoft SDKs\Windows\v7.0A, который был последним, который я смог найти. Где-нибудь есть более поздняя версия, которую я должен использовать?

Ответы [ 7 ]

59 голосов
/ 09 июля 2010

У меня была такая же проблема. Если ваш проект настроен на использование .NET 4.0 Framework, необходимо выбрать правильную версию SvcUtil.exe, иначе будет выдано сообщение об ошибке: «Не удалось загрузить ...»

  • Если вы посмотрите в «Microsoft SDKs \ Windows \ v6.0A \ Bin», то увидите, что версия этого exe-файла - «3.0.4506.2152».
  • Версия SvcUtil.exe в "Microsoft SDKs \ Windows \ v7.0A \ Bin" точно такая же, так что я тоже бросил цикл.

Однако есть другая версия SvcUtil.exe, расположенная в «Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools», которая является версией «4.0.30319.1», и, если вы используете ее, все должно работать.

7 голосов
/ 08 октября 2010

Последняя версия SDK для .Net 4.0 доступна на

http://msdn.microsoft.com/en-us/windows/bb980924.aspx

svcutil.exe, который находится в v7.1 / bin , имеет версию 3.0.4506.2152.

svcutil.exe, который находится в v7.1 / bin / NETFX 4.0 Tools имеет версию 4.0.30319.1.

0 голосов
/ 03 августа 2013

Обновление: последняя версия утилиты не v7.0 согласно:

Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools

SvcUtil.exe v8.0A теперь доступен после установки Visual Studio 2012 (VS 2012)

"C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools\ SvcUtil.exe "

Что вам действительно нужно, так это полное определение для преобразования файла WSDL в служебный клиент:

/ n: *, MyCompany.Services.Клиент /out:IServiceInterface.cs ServiceDefinition.wsdl.xml

Где определение службы.wsdl, очевидно, является ответом? Wsdl от любой старой конечной точки мыла.

Помните миньонов и троллей!Теперь все Async, так что ищите и воспользуйтесь новой поддержкой Async, созданной SVCUtil.exe v8.0

0 голосов
/ 06 мая 2010

Отвечая на мой собственный вопрос.Новая версия svcutil, вероятно, будет поставляться с v7.1 Windows SDK , который выпущен в середине июня .

0 голосов
/ 28 апреля 2010

У меня такая же проблема.

Microsoft говорит, что с новой версией .Net (http://msdn.microsoft.com/en-us/library/aa347733.aspx)) можно использовать только DLL-библиотеки .Net 4 с новой версией .Net (*1003**1004*). Доступ к .Net 4 DLL в качестве ссылок вообще.

0 голосов
/ 25 апреля 2010

Почему бы не перестроить как .NET 3.5 для генерации классов?Я подозреваю, что типы, для которых вы создаете классы, не зависят от какой-либо функциональности .NET 4.0.Файлы cs не заботятся о том, для какой версии была создана DLL, так что вы можете использовать их в проекте 4.0 просто отлично.

0 голосов
/ 22 апреля 2010

По этой ссылке для .Net 4.0 вы должны использовать ее в C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0 \ Bin.

http://msdn.microsoft.com/en-us/library/aa347733.aspx

Кажется немного странным, если файл в каталоге v7.0A слишком стар.

...