Odpowiedzi:
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" />
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
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.
Microsoft.CSharp.targets
plik z jakiegoś powodu został usunięty! jak powiedziałeś, usunąłem packages
folder i ponownie uruchomiłem Visual Studio, magicznie zadziałało!
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.
git clone <RepoUrl> <LocalDirName>
do określenia nazwy katalogu do sklonowania, aby uniknąć% 20
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.
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 packages
folderze.
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.
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.
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:
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.targets
plik.
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)
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.
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.
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')" />
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 .
W przypadku błędów programu Microsoft.WebApplications.targets
możesz:
Microsoft.WebApplication.targets
” z pliku maszyny deweloperskiej do maszyny budującej TFS.Oto post.
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).
Usunąłem folder obj, a następnie projekt został załadowany zgodnie z oczekiwaniami.
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"
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.
Microsoft.CSharp.Targets
celuMicrosoft.CSharp.targets
w.csproj
plikach.