Nie znaleziono zaimportowanego projektu „C: \ Microsoft.CSharp.targets”

126

Dostałem ten błąd dzisiaj, kiedy próbuje otworzyć Visual Studio 2008 projektu w Visual Studio 2005:

Nie znaleziono zaimportowanego projektu „C: \ Microsoft.CSharp.targets”.

lomaxx
źródło
Musiałem zmienić nazwę moje referencje od Microsoft.CSharp.Targetscelu Microsoft.CSharp.targetsw .csprojplikach.
Stephane

Odpowiedzi:

112

Otwórz plik csproj w notatniku (lub notepad ++) Znajdź linię:

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

i zmień go na

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
lomaxx
źródło
22
Mój mówi: „<Import Project =" $ (MSBuildExtensionsPath32) \ ... "
B. Clay Shannon,
@Iomaxx, rozwiązałem ten problem, zmieniając element docelowy kompilacji Monodevelop na Mono / .NET 4.0 z Mono / .NET 3.5.
Frank
5
Mój podał już MSBuildBinPath, ale zawierał CompactFramework w przestrzeni nazw: <Import Project = "$ (MSBuildBinPath) \ Microsoft.CompactFramework.CSharp.targets" />
Teysz
Jeśli używasz Monodevelop instaluje pakiety: "mono-msbuild" i "mono-msbuild-sdkresolver". UWAGA: Testowane na Linux Manjaro.
Eduardo Lucio
Będziesz musiał usunąć pakiet „msbuild-stable” (lub równoważny), jeśli jest zainstalowany. UWAGA: Testowane na Linux Manjaro.
Eduardo Lucio
59

Jest to rozwiązanie globalne, niezależne od konkretnego opakowania lub pojemnika.

W moim przypadku usunąłem folder Packages z mojego katalogu głównego.

Może dzieje się tak, ponieważ są tam twoje pakiety, ale kompilator nie znajduje odniesienia. więc najpierw usuń starsze pakiety i dodaj nowe.

Kroki, aby dodać nowe pakiety

  • Najpierw usuń folder z pakietami ( będzie znajdował się w pobliżu lub o jeden krok wyżej od bieżącego folderu projektu ).
  • Następnie uruchom ponownie projekt lub rozwiązanie.
  • Teraz Odbuduj plik rozwiązania.
  • Projekt otrzyma nowe referencje od menedżera pakietów nuGet. Twój problem został rozwiązany.

To nie jest właściwe rozwiązanie, ale zamieściłem je tutaj, ponieważ mam ten sam problem.

W moim przypadku nie mogłem nawet otworzyć swojego rozwiązania w Visual Studio i nie otrzymałem żadnej pomocy z innymi odpowiedziami SO.

Bharat
źródło
1
Jak mówi Alf Moh, po prostu znajdź ten plik w innym miejscu na swoim komputerze i skopiuj go do folderu, w którym go szuka
Serj Sagan
@SerjSagan tak, to pomoże, ale czasami nie możesz otworzyć nawet pliku rozwiązania w Visual Studio, w tym czasie moje rozwiązanie pomoże ..
Bharat
5
Miałem ten problem w Visual Studio dla komputerów Mac, Microsoft.CSharp.targetsplik z jakiegoś powodu został usunięty! jak powiedziałeś, usunąłem packagesfolder i ponownie uruchomiłem Visual Studio, magicznie zadziałało!
A-Sharabiani
1
To naprawiło to dla mnie, ale mój kolega był w stanie uruchomić to za pierwszym razem. Chociaż to działa, mam coś innego do znalezienia!
JakePlatford
1
Niezły stary! Straciłem na tym godzinę
Hugo Nava Kopp
20

Dla mnie problem polegał na tym, że ścieżka projektu zawierała% 20 znaków, ponieważ git dodał je zamiast spacji podczas klonowania repozytorium. Innym problemem może być zbyt długa ścieżka do pakietu.

user2042930
źródło
1
To był problem dla mnie. Nazwa projektu zawierała spację, więc nazwa katalogu po klonie git zawierała% 20. Możesz użyć git clone <RepoUrl> <LocalDirName>do określenia nazwy katalogu do sklonowania, aby uniknąć% 20
Dan Cook
11

To łącze w witrynie MSDN również bardzo pomaga w zrozumieniu przyczyny, dla której nie działa. $ (MSBuildToolsPath) to ścieżka do Microsoft.Build.Engine v3.5 (wstawiana automatycznie do pliku projektu podczas tworzenia w VS2008). Jeśli spróbujesz zbudować projekt dla .Net 2.0, upewnij się, że zmieniono tę ścieżkę na $ (MSBuildBinPath), która jest ścieżką do Microsoft.Build.Engine v2.0.

Oleg Sacharow
źródło
11

W moim przypadku nie mogłem załadować jednego z 5 projektów w moim rozwiązaniu.

Pomogło to zamknąć Visual Studio i musiałem usunąć Microsoft.Net.Compilers.1.3.2 folder nuget w packagesfolderze.

Następnie ponownie otwórz rozwiązanie i projekt załaduj zgodnie z oczekiwaniami

Dla pewności zamknij wszystkie wystąpienia VS przed usunięciem folderu.

Vojta
źródło
6

Kiedyś w pliku csproj miałem następujący wiersz:

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

Po usunięciu tego pliku działa dobrze.

appenthused
źródło
6

Jeśli napotkasz błąd, który mówi Microsoft.CSharp.Core.targets not found, oto kroki, które podjąłem, aby poprawić mój:

  1. Otwórz dowolny folder poprzednich projektów roboczych i przejdź do odsyłacza pokazanego w błędzie, czyli Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/wyszukaj Microsoft.CSharp.Core.targetsplik.

  2. Skopiuj ten plik i umieść go w niedziałającym projekcie tools folder(czyli przejdź do folderu narzędzi w niedziałającym projekcie, jak pokazano powyżej)

  3. Teraz zamknij projekt (jeśli był otwarty) i otwórz go ponownie.

Teraz powinno działać.

Ponadto, aby upewnić się, że wszystko działa poprawnie w obecnie otwartym projekcie programu Visual Studio, przejdź do Tools > NuGetPackage Manager > Manage NuGet Packages For Solution . W tym miejscu możesz znaleźć błąd informujący, że plik CodeAnalysis.dll jest używany przez inną aplikację.

Ponownie przejdź do tools folder, znajdź określony plik i usuń go. Wrócić doManage NuGet Packages For Solution . Znajdziesz link, który poprosi Cię o ponowne załadowanie, kliknięcie i wszystko zostanie ponownie zainstalowane.

Twój projekt powinien teraz działać poprawnie.

Alf Moh
źródło
3

Otrzymałem to po ponownej instalacji systemu Windows. Visual Studio zostało zainstalowane i mogłem zobaczyć typ projektu Silverlight w oknie Nowy projekt, ale otwarcie jednego nie zadziałało. Rozwiązanie było proste: musiałem zainstalować środowisko wykonawcze Silverlight Developer i / lub Microsoft Silverlight 4 Tools for Visual Studio. Może się to wydawać głupie, ale przeoczyłem to, ponieważ pomyślałem, że powinno działać, ponieważ typ projektu Silverlight był dostępny.

Piotr
źródło
3

W moim przypadku otworzyłem plik .csproj w notatniku i usunąłem następujące trzy wiersze. Działał jak urok:

<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
źródło
2

ok, a co jeśli powie tak: między znakami gt / lt

Importuj projekt = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /

jak naprawić błąd celów?

Znalazłem również ten ciąg importu w projekcie demonstracyjnym (konkretnie „Zbuduj własną strukturę MVVM” Roba Eisenburga).

Jeśli zastąpić taki przywóz z jednej sugerowanej przez lomaxx VS2010 RTM donosi, że trzeba zainstalować ten .

Andre Luus
źródło
2

W przypadku błędów programu Microsoft.WebApplications.targetsmożesz:

  1. Zainstaluj program Visual Studio 2010 (lub tę samą wersję, co na komputerze deweloperskim) na serwerze TFS.
  2. Skopiuj „ Microsoft.WebApplication.targets” z pliku maszyny deweloperskiej do maszyny budującej TFS.

Oto post.

stack247
źródło
1

Ten błąd może również wystąpić podczas otwierania projektu Silverlight, który został zbudowany w SL 4, gdy masz zainstalowany SL 5.

Oto przykładowy komunikat o błędzie: Zaimportowany projekt „C: \ Program Files (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets” nie został znaleziony.

Zwróć uwagę na wersję 4.0.

Aby rozwiązać, edytuj projekt i znajdź:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

I zmień go na v5.0.

Następnie przeładuj projekt i otworzy się (chyba że nie masz zainstalowanego SL 5).

Greg Gum
źródło
0

Usunąłem folder obj, a następnie projekt został załadowany zgodnie z oczekiwaniami.

Atron Seige
źródło
0

Czasami problem może dotyczyć zakodowanej na stałe wersji VS w pliku .csproj. Jeśli masz w swoim csproj coś takiego:

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

Należy sprawdzić, czy numer jest poprawny (przyczyną może być to, że projekt został utworzony w innej wersji programu Visual Studio). Jeśli jest źle, zastąp go aktualną wersją narzędzi do kompilacji LUB użyj zmiennej VS:

[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
WholeLifeLearner
źródło
0

Napotkałem ten problem podczas wykonywania Playbook Ansible, więc chcę tutaj dodać moje 2 centy. Zauważyłem komunikat ostrzegawczy o brakującym Visual Studio 14. Visual Studio w wersji 14 został wydany w 2015 roku i rozwiązaniem mojego problemu było zainstalowanie Visual Studio 2015 Professional na maszynie hosta mojego agenta Azure DevOps.

Alex
źródło
0

Po próbie przywrócenia, zamknięciu VS, usunięciu nieudanego pakietu, ponownym otwarciu, próbie przywrócenia, wiele razy po prostu usunąłem wszystko w pakietach i kiedy wykonałem przywracanie i działało idealnie.

Godny 7
źródło