J’ai récemment ajouté des projets personnalisés de bibliothèque de classes Portable à une application construite dans un serveur de génération. La compilation fonctionnait bien, mais après cela, elle a cessé de fonctionner et affiche les messages suivants:
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (983, 5): avertissement MSB3644: Les assemblys de référence pour l’infrastructure “.NETPortable, Version = v4.0, Profile = Profile136” n’étaient pas a trouvé.
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (1578, 5): avertissement MSB3270: il y avait une incompatibilité entre l’architecture de processeur du projet en cours de construction “MSIL” et l’architecture de processeur de la référence “C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ mscorlib.dll”, “AMD64”.
erreur CS0234: Le nom de type ou d’espace de noms ‘Linq’ n’existe pas dans l’espace de noms ‘Système’ (il manque une référence d’assembly?)
- Impossible de trouver le fournisseur de données .Net Framework demandé. il pourrait ne pas être installé
- Résolution de type avec PerRequestLifetimeManager sans requête HTTP
- Enum addition vs soustraction et casting
- Obtenir l’emplacement d’un Web Client sur une redirection HTTP 302?
- N’importe quelle astuce pour utiliser l’opacité sur un panneau dans Formulaire Fenêtre Visual Studio?
Les spécifications du serveur de construction:
La solution est une application .NET 4.0 et les projets portables visent uniquement .NET4.0 + e Silverlight 5.
J’ai vérifié ma machine de développement (Windows 8, Visual Studio 2012). Il existe bien un dossier “C: \ Program Files (x86) \ Assemblys de référence \ Microsoft \ Framework.NETPortable \ v4.0 \ Profile \ Profile136” (en fait, les profils pour .NET 4.0 vont jusqu’à 158). Sur la machine de construction, cependant, il n’existe que des dossiers pour les profils jusqu’à 131.
Est-ce que Portable Class Library Tools est à jour? Il semble manquer l’installation de profils pour les plates-formes les plus récentes.
METTRE À JOUR
J’ai copié le “.NETPortable \ v4.0 \ Profile \ Profile136” de ma machine de développement sur le serveur de génération, et maintenant l’application est générée avec succès. Je voudrais toujours savoir pourquoi l’installation des outils de la bibliothèque de classes portable ne fonctionne pas.
Une solution plus générale et élégante consiste à installer les derniers assemblys de référence de la bibliothèque portable Microsoft .NET. Cela installera profile138 parmi beaucoup d’autres.
Le ou les installateurs autonomes peuvent être trouvés à l’adresse suivante:
Copier le profil souhaité (il est explicite dans le message d’erreur) de la machine de développement sur le serveur de construction, après l’installation des outils de bibliothèque de classes portable , a permis à ma génération de fonctionner.
Apparemment, la bibliothèque de classes portable, dans sa version actuelle, n’inclut pas les profils portables les plus récents.
Si quelqu’un connaît un moyen plus moderne d’obtenir des profils portables sur un serveur de build, autre que l’installation de VS ou la copie manuelle, j’aimerais vraiment le savoir.
METTRE À JOUR
Chemin, sur ma machine dev, du dossier à copier sur la machine serveur (le chemin sur le serveur était le même):
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile136
Profile136 est venu avec la version du pack de ciblage de bibliothèque portable faisant partie du kit de développement logiciel Phone SDK 8.0 (ou d’une mise à jour ultérieure de VS pour VS 2012). La version du pack de ciblage que vous utilisiez est plus ancienne.