Svcutil.exe for.NET 4,0?

J'essayais d'utiliser svcutil.exe pour générer des classes proxy pour un service, mais quand j'utilise l'option /reference pour référencer un assembly construit pour. NET 4.0, j'obtiens une erreur.

Impossible de charger le fichier ou l'assemblage [...] ou de l'une de ses dépendances. Cet assembly est construit par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé.

Il semble donc que j'utilise une ancienne version de svcutil.EXE. J'utilise celui de "C:Program FilesMicrosoft SDKsWindowsv7.0A qui était le dernier que je pu trouver. Est-il une version ultérieure quelque part que je suis censé utiliser?

35
demandé sur Peter Mortensen 2010-04-22 17:03:07

7 réponses

J'ai eu le même problème. Si votre projet est configuré pour utiliser le Framework. net 4.0, vous devez choisir la bonne version de SvcUtil.exe, ou il va jeter une erreur: "Impossible de charger..."

  • Si vous regardez dans "Microsoft SDKs \ Windows\v6. 0A\Bin", vous verrez que la version de cet exe est "3.0.4506.2152".
  • la version de SvcUtil.exe dans "Microsoft SDKs \ Windows\v7. 0A\Bin" est exactement le même, donc il m'a jeté pour une boucle aussi bien.

Cependant, Il existe une autre version de SvcUtil.exe situé dans "Microsoft SDKs \ Windows \ v7. 0A\Bin\NETFX 4.0 Tools" qui est la version "4.0.30319.1", et si vous l'utilisez, tout devrait fonctionner.

59
répondu Boris 2010-07-09 15:27:43

La dernière version du SDK pour. Net 4.0 est disponible sur

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

Svcutil.exe qui réside dans v7.1 / bin a la version 3.0.4506.2152.

Svcutil.exe qui réside dans V7.1/bin / NETFX 4.0 Outils a la version 4.0.30319.1.

7
répondu Sharken 2010-10-08 09:24:27

Selon ce lien pour. Net 4.0, vous devriez en utiliser un dans C:\Program fichiers \ Microsoft SDKs \ Windows\v6. 0\Bin.

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

Semble un peu étrange cependant, si celui du répertoire v7. 0A est trop vieux.

0
répondu Hans Olsson 2010-04-22 13:22:56

Pourquoi ne pas reconstruire en tant que. net 3.5 pour générer les classes? Je soupçonne que les types pour lesquels vous générez des classes ne reposent sur aucune fonctionnalité. net 4.0. Les fichiers cs ne se soucieront pas de la version pour laquelle la DLL a été construite, vous pouvez donc les utiliser dans un projet 4.0.

0
répondu nedruod 2010-04-24 23:57:11

J'ai le même problème.

Microsoft dit que vous ne pouvez utiliser. Net 4 DLL avec le nouveau SvcUtil qui vient avec la dernière version de. Net ( http://msdn.microsoft.com/en-us/library/aa347733.aspx ) mais cette version semble être celle que vous mentionnez ci-dessus. Il n'accèdera pas du tout aux DLL.Net 4 en tant que références.

0
répondu Chris 2010-04-28 03:55:11

Répondre à ma propre question. La nouvelle version de svcutil viendra probablement avec v7.1 du SDK Windows qui est sorti à la mi-juin.

0
répondu D.H. 2010-05-06 08:34:01

Mise à jour: la nouvelle version d'util n'est pas v7. 0 selon:

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

SvcUtil.exe v8. 0A est maintenant disponible après l'installation de Visual Studio 2012 (VS 2012)

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

Ce que vous voulez vraiment, c'est la définition complète pour transformer un fichier WSDL en client de service:

/ n:*, MyCompany.Service.Client entrée /sortie:IServiceInterface.cs ServiceDefinition.wsdl.xml

Où définition de service.wsdl est évidemment le ?réponse wsdl de n'importe quel ancien point de terminaison soap.

Les Minions et les Trolls se souviennent! Tout est maintenant asynchrone alors recherchez et profitez du nouveau support asynchrone généré par V8. 0 de SVCUtil.exe

0
répondu 2013-08-03 00:13:43