Le type " xxx " est défini dans une assemblée qui n'est pas référencé
J'ai été à récurer l'internet pour une réponse sur ce point et pourraient vraiment utiliser l'aide.
Je l'ai déjà regardé les autres posts concernant cette erreur, et aucune de ces réponses m'ont aidé.
L'erreur totale est,
Type " xxx " est défini dans une assemblée qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'xxx, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null".
La solution s'appuie fine localement, mais l'erreur se produit lorsque j'déclencher un build sur le serveur de build.
Voici ce que j'ai fait jusqu'à présent dans une tentative pour résoudre ce problème:
- Assuré que toutes les références de projet sont corrects(Avais un Architecte de l'examen, il
avec moi) - Changé le 'SpecificVersion' true à la propriété
- Supprimé la référence et de l'ajouter à l'arrière(En VS2012 et édité
l' .csproj fichier lui-même) - Une solution intégrée localement sur le serveur de build, il passe
- MODIFIER - je devrais aussi mentionner que j'ai construit cette solution sur les deux serveurs de build et obtiens toujours la même erreur
Je suis en utilisant VS2012 et TFS2012 pour ce faire.
Je serais vraiment reconnaissant de toute aide, merci.
*Mise à JOUR:*j'ai juste fait un MSBuild sur le serveur de build, mais il a changé la configuration de "Libération" et a été en mesure de reproduire des parties de l'erreur. Certaines des principales différences est que la version c'est la recherche d'soudainement 1.3.1.15 au lieu de 0.0.0.0 et la PublicKeyToken n'est plus nulle. Personne ne sait ce que cela pourrait signifier? La version de l'assembly est censé être 0.0.0.0.
Ouais, tout est en train de s'exécuter .NET 4.0
OriginalL'auteur Albert | 2013-06-22
Vous devez vous connecter pour publier un commentaire.
Donc, après avoir mis quelques heures de plus avec mon Architecte, nous avons trouvé le problème. Nos développeurs ont eu plusieurs copies de la même dll enterré dans divers dossiers dans notre Contrôle de code Source. Un de ces projets était de référencement de l'incorrect .dll.
Après la fixation de la des références et en enlevant l'excès inutiles .dll, l'erreur a disparu et nos constructions sont enfin au travail! 🙂
OriginalL'auteur Albert
Vous avez mentionné que vous avez essayé la solution de construction sur le serveur de test. Avez-vous utilisez visual studio 2012 pour construire la solution ou avez-vous fait courir msbuild?
Le test précis serait d'utiliser msbuild similaire à ceci:
MSBuild MySolution.la sln /p:Configuration="Debug" /p:Plate-forme="CPU Tout"
Vous pouvez réellement obtenir la commande exacte en regardant les journaux de construction pour Build TFS, il donnera la liste de la commande build il a exécuté et simplement de l'exécuter vous-même (vous aurez besoin de supprimer des trucs supplémentaires Build TFS ajoute pour l'enregistrement)
Après que vous pouvez exécuter la même commande sur votre machine locale et voir si ça passe.
Une autre chose à essayer est de mettre en "copie locale" pour tous les assemblys dans le projet.
Espérons que cette aide!
donc il ne fait construire à l'aide de msbuild sur le serveur de build? aussi devez-vous utiliser la norme xaml pour build tfs ou est-ce une coutume/modifié? Maintenant sur la configuration de build: quelle est votre définition pour "Nettoyer l'espace de travail" dans le processus de génération des paramètres? Lorsque l'échec de la construction, voyez-vous tout le code source de "Construire Dossier de l'Agent" et que la solution vous la compilation lors de l'exécution de MSBuild?
Ouais, il construit à l'aide de msbuild sur le serveur de build. Je suis en utilisant le standard de xaml modèle de processus, et mon "espace de travail Propre" est réglé sur "Sorties". Mais je l'ai fixé à "Tous" et a couru le construire avec pas de chance. J'ai vérifié le dossier de la version sur le serveur, et il n'a pas tous le code source lors de l'exécution de msbuild.
OriginalL'auteur Woland