web-dev-qa-db-fra.com

erreur csc fichier de métadonnées cs0006 introuvable lors de la création d'une application .net 3.5 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 avons suivi le processus de migration. Lorsque nous essayons de créer nos applications .net 3.5, nous obtenons l'erreur suivante:

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 relancez la construction, cela fonctionne parfaitement.

Je ne peux pas mettre à niveau toutes les applications que j'ai lors de cette migration. Y a-t-il quelque chose qui pourrait me manquer dans la migration ou dans ma boîte de compilation pour prendre en charge la version 3.5?

VS 2008, 2010, 2012 est installé sur mon serveur de build. J'ai installé des frameworks .net, etc. 

Toute aide est utile.

28
Kevin Price

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

15
Vasudevan Kannan

Nous avons ces problèmes de commutation entre les branches (avec des changements significatifs). Quand cela se produit, je recommande ce qui suit:

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

Suivre cette série de choses fera ce que "Solution propre" devrait faire, mais ne le fait pas. Essentiellement, nous essayons de supprimer toute possibilité que quelque chose soit caché n'importe où (ce qui est la cause la plus courante de ces problèmes).

Bien sûr, votre kilométrage peut varier, mais pour nous, avec 120 projets et 1,3 million de lignes de refacteurs de code, nous abordons régulièrement ce problème et le résout de manière fiable.

7
Paul Carroll

Cela semble être dû au fait que le fichier de solution Visual Studio ne contient pas les dépendances du projet. J'ai constaté que je devais modifier le fichier de solution manuellement pour configurer les dépendances à l'aide des GUID du projet.

Par exemple, dans notre fichier de 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ée. Cela devait ressembler davantage à ceci, où les GUID supplémentaires spécifiés sont les GUID du 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 ceci post pour plus d'informations.

5
Nicholas Roeder

Dans mon cas, un des projets ne se développait pas, mais les erreurs ne le mentionnaient absolument pas. Après quelques heures passées à me tirer les cheveux et en lâchant des bombes F , j'ai finalement regardé attentivement la sortie et remarqué une erreur:

 enter image description here

Et c'était ça. Je l'ai corrigé et toutes les erreurs ont disparu. Mais je suis devenu curieux alors j'ai changé le code en code qui échouait à la compilation. J'ai fait une compilation et maintenant j'ai l'erreur de compilation amicale. Pour une raison quelconque, l'erreur n'était pas affichée. Aucune idée pourquoi ...

4
CodingYoshi

J'avais un problème similaire. Dans mon cas, j'ai pu résoudre le problème en deux étapes. Tout d'abord, j'ai nettoyé la solution à l'aide de l'option Nettoyer la solution. Ensuite, une fois la solution nettoyée, le débogueur a détecté que j'avais installé des versions obsolètes de la bibliothèque Microsoft.Aspnet.Mvc. J'ai donc installé les nouveaux par le biais de la console de bibliothèque en utilisant les lignes ci-dessous: -nom du projet _____________

2
AGuler

J'ai aussi eu la même erreur.

La solution était de vérifier le chemin. Dans mon chemin, un dossier porte le nom abc% 20ert . Cela vient de la synchronisation de l'espace de git. Visual Studio a des problèmes avec le% 20 dans le chemin. Le fait de supprimer ceci a résolu le problème.

2

Vérifiez la version de l'infrastructure cible dans chaque écran de projet => propriétés. S'il est inférieur à celui utilisé dans les projets ou les fichiers de référence, vous obtiendrez une erreur, car le compilateur ne sait pas comment traiter la version la plus récente du framework.
D'après ce que vous décrivez, vous avez une dépendance avec Framework v4.0 comme cible.
 
Modifiez le cadre cible des dépendances un par un jusqu'à la construction de votre projet.

S'il s'agit d'une dépendance de source fermée tierce, demandez-leur de lui fournir la cible .net 3.5.


Il n'y a pas de solution de contournement.

1
michal

J'ai eu cette erreur lors de l'utilisation des fonctionnalités du langage C # 7 dans un projet ASP.NET, dans lequel il ne possédait pas de version récente du package NuGet Microsoft.Net.Compilers, comme décrit dans Activation de c # 7 dans une application asp.net .

1
Bart Verkoeijen