Svcutil.exe для.NET 4.0?

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

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

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

35
задан Peter Mortensen 10 May 2010 в 20:17
поделиться

5 ответов

У меня была такая же проблема. Если ваш проект настроен на использование .NET 4.0 Framework, вы должны выбрать правильную версию SvcUtil.exe, иначе он выдаст ошибку: "Could not load..."

  • Если вы посмотрите в "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", и если вы используете ее, все должно работать.

59
ответ дан 27 November 2019 в 07:02
поделиться

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

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

Хотя это может показаться немного странным, если каталог в каталоге v7.0A слишком старый.

0
ответ дан 27 November 2019 в 07:02
поделиться

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

0
ответ дан 27 November 2019 в 07:02
поделиться

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

Microsoft утверждает, что вы можете использовать библиотеки DLL .Net 4 только с новым SvcUtil, который поставляется с последней версией .Net ( http://msdn.microsoft.com/en-us/library/aa347733.aspx ), но похоже, что это та версия, которую вы упомянули выше. Он вообще не будет обращаться к библиотекам DLL .Net 4 как к ссылкам.

0
ответ дан 27 November 2019 в 07:02
поделиться

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

0
ответ дан 27 November 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: