ECSC error cs0006 fichier de métadonnées introuvable a.net 3.5 application avec TFS 2012

nous passons de TFS 2008 à TFS 2012. La majorité de nos applications sont des applications .net 3.5.

Nous avons mis en place un environnement TFS 2012 et sommes passés par un processus de migration. Lorsque nous essayons de construire nos applications .net 3.5, nous obtenons l'erreur:

csc error cs0006 metadata file could not be found........

si nous prenons une application .net 3.5, mettez-la à niveau vers .net 4.x, puis lancer la construction à nouveau, il fonctionne très bien.

Je ne peux pas mettre à jour chaque application j'ai au cours de cette migration. Y a-t-il quelque chose que je pourrais manquer soit dans la migration ou dans mon build box pour supporter 3.5?

J'ai VS 2008, 2010, 2012 installé sur mon serveur de construction. J'ai installé des cadres. net, etc.

toute assistance est utile.

27
demandé sur Max Shmelev 2013-01-24 02:04:41

8 réponses

les dépendances de projet et l'ordre de construction de projet peuvent être spécifiés dans Visual Studio 2012 en cliquant avec le bouton droit de la souris sur le projet dans la Solution explorer et en sélectionnant les dépendances de projet. En faisant cette action, votre fichier de solution sera corrigé. Dans mon cas, j'ai pu corriger ce problème sans modifier manuellement les fichiers de solution.

14
répondu Vasudevan Kannan 2017-04-12 03:28:06

nous obtenons ces problèmes commutation entre les branches (avec des changements significatifs). Quand cela arrive, je recommande ce qui suit:

  • Fermez Visual Studio
  • Fermer w3wp.exe instances (paranoïaque et seulement si vous hébergez via IIS local)
  • rechercher et supprimer tous les dossiers bin et obj
  • nettoyer tous les assemblages intermédiaires compilés par JIT C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\

après cet ensemble de fera ce que" solution propre " devrait faire, mais ne fait pas. Essentiellement, nous essayons de supprimer toute chance que quelque chose soit mis en cache n'importe où (ce qui est la cause la plus commune de ces problèmes).

bien sûr votre kilométrage peut varier, mais pour nous avec 120 projets et 1,3 millions de lignes de réfecteurs de code jeter régulièrement cette question et il le résout de façon fiable.

6
répondu Paul Carroll 2017-03-09 02:10:32

cela semble être dû au fait que le fichier Visual Studio solution ne contient pas les dépendances du projet. J'ai trouvé que je devais éditer le fichier solution manuellement pour configurer les dépendances en utilisant les GUIDs de projet.

par exemple, dans notre fichier solution nous avions quelque chose comme ceci:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
EndProject

Notez qu'aucune dépendance n'est spécifié. Il devait être plus comme ceci où les GUIDs supplémentaires spécifiés sont les GUIDs de la projet dont dépend ProjectA.

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
    ProjectSection(ProjectDependencies) = postProject
        {EB576061-5081-4ED5-9146-1B20C893E51E} = {EB576061-5081-4ED5-9146-1B20C893E51E}
        {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40} = {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40}
        {03FAB21D-C077-499B-9B19-67971791D369} = {03FAB21D-C077-499B-9B19-67971791D369}
        {F5E0C7B8-36AD-46B0-A74D-9C48516E208A} = {F5E0C7B8-36AD-46B0-A74D-9C48516E208A}
    EndProjectSection
EndProject

voir ce post pour plus d'informations.

5
répondu Nicholas Roeder 2013-07-04 16:53:17

dans mon cas un des projets n'était pas en construction mais il n'y avait absolument aucune mention de lui dans les erreurs. Après quelques heures de tirer mes cheveux et larguer quelques bombes F , j'ai finalement regardé attentivement la sortie et remarqué qu'il y avait une erreur:

enter image description here

et c'est tout. Je l'ai réparé et presque toutes les erreurs ont disparu. Mais je suis curieuse donc j'ai changé le code de nouveau au code qui échouait la compilation. J'ai fait une construction et maintenant j'ai eu l'erreur de construction amicale. Pour une raison quelconque, l'erreur n'a pas été montré. Aucune idée de pourquoi...

4
répondu CodingYoshi 2017-04-07 17:51:53

j'ai eu un problème similaire. Dans mon cas, j'ai pu le résoudre en deux étapes. Tout d'abord, J'ai nettoyé la Solution en utilisant L'option de Solution propre. Puis, après le nettoyage de la solution, le débogueur a détecté que J'avais installé des versions obsolètes du Microsoft.Aspnet.Bibliothèque Mvc. Donc j'ai installé les nouveaux à travers la console de la bibliothèque en utilisant les lignes ci-dessous: Installer-Package Microsoft.Aspnet.Mvc -version 5.2.3.0 -projectname _____________ Installer-Package Microsoft.Aspnet.Mvc-version 5.2.3.0-nom du projet _____________

2
répondu AGuler 2016-09-18 16:48:19

j'ai aussi eu la même erreur.

le correctif était, pour vérifier le chemin. Dans mon chemin, un dossier a le nom abc%20ert . Ça vient de la synchronisation de l'espace de git. Visual Studio a des problèmes avec le %20 dans le chemin. L'élimination de ce problème a résolu le problème.

2
répondu Michael Mittermair 2017-05-04 07:40:23

j'ai eu cette erreur lors de l'utilisation des fonctionnalités de langue C# 7 dans un ASP.NET projet, où il n'avait pas une version récente du paquet NuGet Microsoft.Net.Compilers , comme décrit dans permettant c# 7 dans un asp.net application .

1
répondu Bart Verkoeijen 2017-08-15 05:45:50

Vérifiez la version cible du framework dans chaque projet=>propriétés. Si elle est inférieure à celle utilisée dans les projets de référence ou les fichiers, vous obtiendrez une erreur car le compilateur ne sait pas comment gérer la version supérieure de framework.

De ce que vous décrivez, vous avez une dépendance qui a le framework v4.0 comme cible.



Changez les dépendances ciblez le cadre un par un jusqu'à ce que votre projet se développe.



S'il s'agit d'une dépendance à une source fermée de tiers, veuillez leur demander de lui fournir la cible .net 3.5.




Il n'y a pas de solution de contournement.

0
répondu michal 2018-09-05 19:53:56