35 votes

Svcutil.exe pour .NET 4.0 ?

J'ai essayé d'utiliser svcutil.exe pour générer des classes de proxy pour un service, mais lorsque j'utilise la commande /reference pour faire référence à un assemblage construit pour .NET 4.0, j'obtiens une erreur.

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

Il semble donc que j'utilise une ancienne version de svcutil.exe. J'utilise celle qui se trouve dans "C:\Program Files\Microsoft SDKs\Windows\v7.0A qui était le plus récent que j'ai pu trouver. Existe-t-il une version ultérieure quelque part que je suis censé utiliser ?

59voto

Boris Points 620

J'ai eu le même problème. Si votre projet est paramétré pour utiliser le Framework .NET 4.0, vous devez choisir la bonne version de SvcUtil.exe, ou il lancera 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 "C'est exactement la même chose, ce qui m'a également fait perdre la tête.

Cependant, il existe une autre version de SvcUtil.exe située 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.

7voto

Sharken Points 268

La dernière version du SDK pour .Net 4.0 est disponible à l'adresse suivante

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.

0voto

ho1 Points 31752

D'après ce lien, pour .Net 4.0, vous devriez en utiliser une en C:\Program Fichiers \Microsoft SDKs \Windows\v6.0\Bin.

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

C'est un peu étrange, si celui qui se trouve dans le répertoire v7.0A est trop vieux.

0voto

nedruod Points 750

Pourquoi ne pas reconstruire en .NET 3.5 pour générer les classes ? Je pense que les types pour lesquels vous générez des classes ne dépendent d'aucune fonctionnalité de .NET 4.0. Les fichiers cs ne se soucient pas de la version pour laquelle la DLL a été construite, vous pouvez donc les utiliser dans un projet 4.0 sans problème.

0voto

Chris Points 1

J'ai le même problème.

Microsoft indique que vous ne pouvez utiliser les DLL de .Net 4 qu'avec le nouveau SvcUtil qui accompagne 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. Elle n'accède pas du tout aux DLL de .Net 4 en tant que références.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X