Używam VS 2015.
Twój projekt nie odwołuje się do struktury „.NETFramework, Version = 4.5”. Dodaj odwołanie do „.NETFramework, Version = 4.5” w sekcji „frameworks” pliku project.json, a następnie ponownie uruchom przywracanie NuGet.
Ten błąd pojawia się w moich warstwach dostępu do danych i logiki biznesowej wkrótce po dodaniu do mojej warstwy MVC. Do tego czasu wszystko układało się dobrze, ale nie wiem, co spowodowało ten błąd. Oto mój project.json:
{
"version": "1.0.0-*",
"description": "foo bar Class Library",
"authors": [ "foo bar" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"net451": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
}
Oto, czego próbowałem:
- Zastąpienie „dotnet5.4” tekstem „net451” (i usunięcie go), jak stwierdzono w tej odpowiedzi .
Wynik to ten sam błąd.
- Zastąpienie „dotnet5.4” „net45” i pozostawienie „net451”. Powoduje to nowy błąd:
Twój project.json nie ma sekcji środowiska wykonawczego. Należy dodać „runtimes”: {„win”: {}} ”do pliku project.json, a następnie ponownie uruchomić przywracanie NuGet.
Próbowałem zrobić tak, jak sugerował ten błąd i dodać
"runtimes": {
"win": {}
},
To spowodowało ten błąd, którego nie mogę pominąć:
Twój project.json nie wymienia „win” jako docelowego środowiska wykonawczego. Należy dodać „„ win ”: {}” w sekcji „runtimes” w pliku project.json, a następnie ponownie uruchomić przywracanie NuGet.
Dodałem już „wygrana”, a to zaczyna przypominać czerwony śledź. Co robię, zmieniając plik project.json bezpośrednio, czy NuGet nie obsługuje tego?
źródło
Odpowiedzi:
Właściwie właśnie odkryłem problem. Skończyło się na kliknięciu na
Restore Nuget Packages
poziomie rozwiązania i udało mi się skompilować mójPCL
plik, a następnie resztę mojego rozwiązania.Mam nadzieję że to pomoże.
źródło
Miałem ten sam problem i ostatecznie musiałem usunąć nie tylko zawartość
bin
iobj
foldery, ale także.vs
katalog rozwiązania.źródło
Miałem ten sam problem - dzieje się to nadal przy użyciu programu Visual Studio 2017.3, który używa plików .csproj zamiast project.json. Co ciekawe, komunikat o błędzie nadal zawiera tekst „project.json”.
Wygląda na to, że przyczyną tego problemu jest plik lub
obj\project.assets.json
plik blokady (w zależności od wersji programu VS) z poprzedniej kompilacji, który nie jest usuwany podczas czyszczenia, jak opisano tutaj .Ręczne usunięcie
/obj
katalogu jest szybkim obejściem.Jeśli masz „nowy” projekt (np. .NET Core lub projekt netstandard utworzony w VS 2017) i „stary” projekt w tym samym katalogu (np. Projekt .NET 4.6 utworzony w VS 2015), wygląda na to, że będą walczyć nieustannie, ponieważ oboje używają
./obj
reż. na różne sposoby. Więcej informacji tutaj. .Obejściem msbuild jest użycie innego katalogu w jednym z projektów
obj
. Dodałem to do mojego „starego” csproj:<PropertyGroup> <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 --> <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath> </PropertyGroup>
źródło
Okazało się, że przyczyną tego problemu był nieuczciwy plik project.lock.json. Po usunięciu pliku problem zniknął.
Oto dokumentacja dotycząca project.lock.json.
Kolejną radą byłoby upewnienie się, że plik project.lock.json jest ignorowany w pliku ignorowania git i wypróbowanie pełnego git clean. Upewnij się, że rozumiesz konsekwencje czyszczenia Git, zanim to zrobisz.
źródło
Miałem ten sam problem po aktualizacji do Visual Studio dla komputerów Mac 7.4 (kompilacja 1033):
Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.
Nie mam żadnych plików projektu JSON. Wskazówki tutaj również nie pomogły, więc musiałem się przekonać, że oprócz mojego docelowego SDK (Nougat 7.1) musiałem zainstalować najnowszy Android SDK (Oreo 8.1).
źródło
Mam ten sam problem, ale rozwiązałem go, dodając odpowiedni zasób pakietu użytkowego pod
vs2017-->tools-->options-->Nugetpacakge manager--->updated
odpowiednim adresem URL pakietu.Zobacz poniższy obrazek
źródło