Le projet importé «C: \ Microsoft.CSharp.targets» est introuvable

127

J'ai eu cette erreur aujourd'hui en essayant d'ouvrir un projet Visual Studio 2008 dans Visual Studio 2005:

Le projet importé "C: \ Microsoft.CSharp.targets" est introuvable.

lomaxx
la source
J'ai dû renommer mes références de Microsoft.CSharp.Targetsà Microsoft.CSharp.targetsdans les .csprojfichiers.
Stephane

Réponses:

112

Ouvrez votre fichier csproj dans le bloc-notes (ou notepad ++) Trouvez la ligne:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

et changez-le en

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
lomaxx
la source
22
Le mien dit: "<Import Project =" $ (MSBuildExtensionsPath32) \ ... "
B. Clay Shannon
@Iomaxx, j'ai résolu ce problème en changeant la cible de construction Monodevelop en Mono / .NET 4.0 à partir de Mono / .NET 3.5.
Frank
5
Le mien disait déjà MSBuildBinPath, mais il incluait CompactFramework dans l'espace de noms: <Import Project = "$ (MSBuildBinPath) \ Microsoft.CompactFramework.CSharp.targets" />
Teysz
Si vous utilisez Monodevelop installe les packages: "mono-msbuild" et "mono-msbuild-sdkresolver". REMARQUE: testé sur Linux Manjaro.
Eduardo Lucio
Vous devrez supprimer le package "msbuild-stable" (ou équivalent) s'il est installé. REMARQUE: testé sur Linux Manjaro.
Eduardo Lucio
59

Il s'agit d'une solution globale, indépendante d'un package ou d'un bac particulier.

Dans mon cas, j'ai supprimé le dossier Packages de mon répertoire racine.

Peut-être que cela arrive parce que vos packages sont là, mais le compilateur ne trouve pas sa référence. alors supprimez d'abord les anciens packages et ajoutez de nouveaux packages.

Étapes pour ajouter de nouveaux packages

  • Supprimez d'abord le dossier packages ( il sera à proximité ou une étape vers votre dossier de projet actuel ).
  • Puis redémarrez le projet ou la solution.
  • Maintenant, reconstruisez le fichier de solution.
  • Le projet obtiendra de nouvelles références du gestionnaire de paquets nuGet. Et votre problème a été résolu.

Ce n'est pas une bonne solution, mais je l'ai publiée ici car je suis confronté au même problème.

Dans mon cas, je n'ai même pas pu ouvrir ma solution dans Visual Studio et je n'ai pas obtenu d'aide pour d'autres réponses SO.

Bharat
la source
1
Comme le dit Alf Moh, trouvez simplement ce fichier ailleurs sur votre ordinateur et copiez-le dans le dossier où il le recherche
Serj Sagan
@SerjSagan oui, cela aidera mais parfois vous ne pouvez même pas ouvrir un fichier de solution dans Visual Studio, à ce moment-là ma solution vous aidera ..
Bharat
5
J'ai eu ce problème sur Visual Studio pour Mac, le Microsoft.CSharp.targetsfichier a été supprimé pour une raison quelconque! comme vous l'avez dit, j'ai supprimé le packagesdossier et redémarré Visual Studio, comme par magie cela a fonctionné!
A-Sharabiani
1
Cela a résolu le problème pour moi, mais un de mes collègues a pu le faire fonctionner pour la première fois. Bien que cela fonctionne, j'ai autre chose à trouver!
JakePlatford
1
Nice one bro! J'ai perdu 1 h sur ça
Hugo Nava Kopp
20

Pour moi, le problème était que le chemin du projet contenait% 20 caractères, car git les ajoutait au lieu d'espaces lorsque le référentiel était cloné. Un autre problème peut être si le chemin d'accès à un package est trop long.

user2042930
la source
1
C'était le problème pour moi. Le nom du projet contenait de l'espace, donc le nom du répertoire après git clone contenait le% 20. Vous pouvez utiliser git clone <RepoUrl> <LocalDirName>pour spécifier le nom du répertoire dans lequel cloner pour éviter d'avoir le% 20
Dan Cook
11

Ce lien sur MSDN aide également beaucoup à comprendre la raison pour laquelle cela ne fonctionne pas. $ (MSBuildToolsPath) est le chemin vers Microsoft.Build.Engine v3.5 (inséré automatiquement dans un fichier projet lorsque vous créez dans VS2008). Si vous essayez de générer votre projet pour .Net 2.0, assurez-vous que vous avez changé ce chemin en $ (MSBuildBinPath) qui est le chemin d'accès à Microsoft.Build.Engine v2.0.

Oleg Sakharov
la source
11

Dans mon cas, je n'ai pas pu charger un projet sur 5 dans ma solution.

Cela a aidé à fermer Visual Studio et j'ai dû supprimer le Microsoft.Net.Compilers.1.3.2 dossier nuget sous le packagesdossier.

Ensuite, ouvrez à nouveau votre solution et le projet est chargé comme prévu

Pour être sûr, fermez toutes les instances de VS avant de supprimer le dossier.

Vojta
la source
6

J'avais l'habitude d'avoir cette ligne suivante dans le fichier csproj:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

Après avoir supprimé ce fichier, cela fonctionne correctement.

ravi
la source
6

Si vous rencontrez l'erreur qui dit Microsoft.CSharp.Core.targets not found, voici les étapes que j'ai suivies pour corriger la mienne:

  1. Ouvrez n'importe quel dossier de projets de travail précédents et accédez au lien indiqué dans l'erreur, c'est-à-dire Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/recherchez le Microsoft.CSharp.Core.targetsfichier.

  2. Copiez ce fichier et placez-le dans le projet non fonctionnel tools folder(c'est-à-dire en accédant au dossier d'outils dans le projet non opérationnel comme indiqué ci-dessus)

  3. Fermez maintenant votre projet (s'il était ouvert) et rouvrez-le.

Cela devrait fonctionner maintenant.

En outre, pour vous assurer que tout fonctionne correctement dans votre projet Visual Studio maintenant ouvert, accédez à Tools > NuGetPackage Manager > Manage NuGet Packages For Solution. Ici, vous pouvez trouver une erreur indiquant que CodeAnalysis.dll est utilisé par une autre application.

Encore une fois, allez dans tools folder, recherchez le fichier spécifié et supprimez-le. Revenez à Manage NuGet Packages For Solution. Vous trouverez un lien qui vous demandera de recharger, cliquez dessus et tout sera réinstallé.

Votre projet devrait fonctionner correctement maintenant.

Alf Moh
la source
3

J'ai eu ceci après avoir réinstallé Windows. Visual Studio était installé et je pouvais voir le type de projet Silverlight dans la fenêtre Nouveau projet, mais en ouvrir un ne fonctionnait pas. La solution était simple: je devais installer le runtime Silverlight Developer et / ou les outils Microsoft Silverlight 4 pour Visual Studio. Cela peut sembler stupide, mais je l'ai négligé car je pensais que cela devrait fonctionner, car le type de projet Silverlight était disponible.

Peter
la source
3

Dans mon cas, j'ai ouvert mon fichier .csproj dans le bloc-notes et supprimé les trois lignes suivantes. A travaillé comme un charme:

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
Ben
la source
2

ok alors que faire s'il dit ceci: entre les signes gt / lt

Importer un projet = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /

comment corriger l'erreur des cibles?

J'ai également trouvé cette chaîne d'importation dans un projet de démonstration (en particulier "Construisez votre propre MVVM Framework" par Rob Eisenburg).

Si vous remplacez que l' importation avec celle proposée par lomaxx VS2010 RTM rapports que vous devez installer ce .

André Luus
la source
2

Pour les erreurs avec Microsoft.WebApplications.targets, vous pouvez:

  1. Installez Visual Studio 2010 (ou la même version que sur la machine de développement) sur votre serveur TFS.
  2. Copiez le « Microsoft.WebApplication.targets» du fichier de la machine de développement vers la machine de construction TFS.

Voici le post.

pile247
la source
1

Cette erreur peut également se produire lors de l'ouverture d'un projet Silverlight qui a été construit dans SL 4, alors que SL 5 est installé.

Voici un exemple de message d'erreur: Le projet importé «C: \ Program Files (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets» n'a pas été trouvé.

Notez la v4.0.

Pour résoudre, modifiez le projet et recherchez:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Et changez-le en v5.0.

Puis rechargez le projet et il s'ouvrira (sauf si vous n'avez pas installé SL 5).

Greg Gum
la source
0

J'ai supprimé le dossier obj, puis le projet s'est chargé comme prévu.

Atron Seige
la source
0

Parfois, le problème peut provenir de la version VS codée en dur dans le fichier .csproj. Si vous avez dans votre csproj quelque chose comme ceci:

[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"

Vous devez vérifier si le numéro est correct (la raison pour laquelle il est incorrect peut être que le projet a été créé avec une autre version de Visual Studio). Si ce n'est pas le cas, remplacez-le par votre version actuelle des outils de construction OU utilisez la variable VS:

[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
WholeLifeLearner
la source
0

J'ai rencontré ce problème lors de l'exécution d'un playbook Ansible, je veux donc ajouter mes 2 cents ici. J'ai remarqué un message d'avertissement concernant l'absence de Visual Studio 14. La version 14 de Visual Studio a été publiée en 2015 et la solution à mon problème consistait à installer Visual Studio 2015 Professional sur la machine hôte de mon agent Azure DevOps.

Alex
la source
0

Après avoir essayé de restaurer, fermer VS, supprimer le package ayant échoué, rouvrir, essayer de restaurer, plusieurs fois, je viens de supprimer tout ce qui se trouve dans les packages et lorsque j'ai fait une restauration et cela a parfaitement fonctionné.

Digne7
la source