Я пытался использовать svcutil.exe для генерации прокси-классов для сервиса, но когда я использую /reference
опция сослаться на блок, который создается для.NET 4.0, я получаю ошибку.
Не мог загрузить файл или блок [...] или одну из его зависимостей. Этот блок создается временем выполнения, более новым, чем в настоящее время загруженное время выполнения, и не может быть загружен.
Таким образом, кажется, что я использую старую версию svcutil.exe. Я использую тот в "C:\Program Files\Microsoft SDKs\Windows\v7.0A
который был последним, я мог найти. Существует ли более поздняя версия где-нибудь, что я, как предполагается, использую?
У меня была такая же проблема. Если ваш проект настроен на использование .NET 4.0 Framework, вы должны выбрать правильную версию SvcUtil.exe, иначе он выдаст ошибку: "Could not load..."
Однако, существует другая версия SvcUtil.exe, расположенная в "Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools", которая имеет версию "4.0.30319.1", и если вы используете ее, все должно работать.
Согласно этой ссылке для .Net 4.0 вы должны использовать его в C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0 \ Bin.
http://msdn.microsoft.com/en-us/library/aa347733.aspx
Хотя это может показаться немного странным, если каталог в каталоге v7.0A слишком старый.
Почему бы не перестроить как. NET 3.5 для генерации классов? Я подозреваю, что типы, для которых вы создаете классы, не полагаются на какие-либо функции .NET 4.0. Файлы cs не заботятся о том, для какой версии была создана DLL, поэтому вы можете использовать их в проекте 4.0.
У меня такая же проблема.
Microsoft утверждает, что вы можете использовать библиотеки DLL .Net 4 только с новым SvcUtil, который поставляется с последней версией .Net ( http://msdn.microsoft.com/en-us/library/aa347733.aspx ), но похоже, что это та версия, которую вы упомянули выше. Он вообще не будет обращаться к библиотекам DLL .Net 4 как к ссылкам.
Отвечая на свой собственный вопрос. Новая версия svcutil
, вероятно, будет поставляться с v7.1 Windows SDK, который выйдет в середине июня.