Twój projekt nie odwołuje się do struktury „.NETFramework, Version = v4.5”.


Używam VS 2015.

Twój projekt nie odnosi się do ".netframework, wersji = 4,5"
struktura. Dodaj łącze do „.NETFramework, Version = 4.5” w
sekcji „frameworks” pliku project.json, a następnie ponownie uruchom pakiet NuGet
przywróć.

Ten błąd pojawia się w moich warstwach dostępu do danych i logiki biznesowej wkrótce po dodaniu MVC do mojej warstwy. Do tego czasu wszystko szło 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:

Rezultatem jest ten sam błąd.
<ol start="2">
[*]
Zastąpienie „dotnet5.4” „net45” i pozostawienie „net451”. Powoduje to nowy błąd:
[/*]
[/list]W pliku project.json nie ma sekcji środowiska wykonawczego. Musisz dodać
'"runtimes": {"win": {}}' do twojego projektu.json, a następnie ponownie uruchom NuGet
restore.

Próbowałem zrobić tak, jak sugerował ten błąd i dodać
"runtimes": {
"win": {}
},

To doprowadziło mnie do błędu, którego nie mogę ominąć:

Twój project.json nie wymienia „win” jako docelowego środowiska wykonawczego. Musisz
dodaj „win”: {} ”do sekcji„ runtimes ”w sekcji project.json,
a następnie ponownie uruchom przywracanie NuGet.

Dodałem już „wygrana” i zaczyna się to wydawać rozpraszające. Co robię, modyfikując plik project.json bezpośrednio, czy NuGet tego nie obsługuje?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem i musiałem usunąć nie tylko zawartość folderów
bin
i
obj
, ale także katalog
.vs
, aby rozwiązać ten problem problem.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem - nadal się to dzieje, używając programu Visual Studio 2017.3, który używa plików .csproj zamiast pliku project.json. Co ciekawe, komunikat o błędzie nadal zawiera tekst „project.json”.
Wygląda na to, że przyczyną tego problemu jest plik blokady lub plik
obj \ project.assets.json
(w zależności od wersji VS) z poprzedniej kompilacji, który nie jest usuwany podczas czyszczenia.

jak opisano tutaj
https://developercommunity.vis ... .html
.
Ręczne usunięcie katalogu
/ obj
to szybkie obejście.
Jeśli masz „nowy” projekt (na przykład projekt .NET Core lub netstandard utworzony w programie VS 2017) i „stary” projekt w tym samym katalogu (na przykład projekt .NET 4.6 utworzony w programie VS 2015), wygląda na to, że będą nieustannie walczyć, ponieważ oba używają katalogu
./obj
na różne sposoby.

Więcej informacji tutaj.
https://github.com/NuGet/Home/issues/5126
.
Obejściem msbuild jest wymuszenie na jednym z projektów używania innego katalogu
obj
. Dodałem to do mojego „starego” csproj:
<PropertyGroup>
<!-- Needed due to old project and new project in same directory: [url=https://github.com/NuGet/Home/issues/5126]https://github.com/NuGet/Home/issues/5126[/url] -->
<BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zauważyłem, że ten fałszywy project.lock.json jest przyczyną tego problemu. Jak tylko usunąłem plik, problem zniknął.
Tutaj
https://docs.microsoft.com/en- ... kjson
niektóre dokumenty na project.lock.json.
Dodatkową radą byłoby upewnienie się, że plik project.lock.json jest ignorowany w pliku git, zignorowanie go i wypróbowanie pełnego git clean. Jednak zanim to zrobisz, upewnij się, że rozumiesz znaczenie Git clean.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Właściwie to właśnie odkryłem problem. Skończyło się na kliknięciu
Restore Nuget Packages
na poziomie rozwiązania i udało mi się skompilować mój plik
PCL
, a następnie ponownie uruchomić moje rozwiązanie.
Mam nadzieję że to pomoże.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem po uaktualnieniu 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. Porady tutaj również nie pomogły, więc musiałem znaleźć trudny sposób, w jaki musiałem zainstalować najnowszy Android SDK (Oreo 8.1) oprócz mojego docelowego SDK (Nougat 7.1).
https://i.stack.imgur.com/aQrPR.jpg
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mam ten sam problem, ale rozwiązałem go, dodając poprawny zasób pakietu samorodków w
vs2017 - & > narzędzia - & > opcje - & > Menedżer Nugetpacakge --- & > zaktualizowany
poprawny adres URL pakietu ...
Zobacz obrazek poniżej
https://i.stack.imgur.com/QBTfu.jpg

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się