Ich habe mein Projekt mit Visual Studio Express 2012 eingerichtet, C # -Code hinzugefügt und den Emulator erfolgreich kompiliert/bereitgestellt. Irgendwann entschied ich mich, etwas mit JSON zu machen, und ich stellte fest, dass ich das Json.NET-Framework verwenden sollte, das als NuGet-Paket verfügbar ist. Ich habe dieses Framework erfolgreich mit dem Befehl Install-Package Newtonsoft.Json
hinzugefügt.
Ich habe versucht, ein Update zu installieren, das MSVC vor zwei Tagen angeboten hat. Die Installation ist fehlgeschlagen, sodass ich mein Projekt nicht mehr öffnen kann. Die Neuinstallation von MSVC hat nicht geholfen, also habe ich Windows auf einen früheren Zustand zurückgesetzt. Ich konnte mein Projekt wieder öffnen und wollte das NuGet-Paket erneut installieren (ohne zu wissen, dass es im Projekt installiert ist, nicht MSVC). Es gab mir bei der Installation Fehler, also versuchte ich, alles von der Paketkonsole zu deinstallieren.
Um es kurz zu machen:
Get-Package
Install-Package Newtonsoft.Json
erneut ausführen, wird der Fehler angezeigtNewtonsoft.Json 5.0.6 konnte nicht installiert werden. Sie versuchen, dieses Paket in einem Projekt zu installieren, das auf "WindowsPhone, Version = v8.0" verweist. Das Paket enthält jedoch keine mit diesem Framework kompatiblen Assemblys
Jetzt bin ich völlig verloren. Ich weiß nicht, wie ich das Paket richtig installieren oder richtig entfernen kann. Ist meine Projektdatei defekt? Wie kann ich es reparieren?
[edit] Jetzt wird es noch verwirrender. Ich habe gerade den Paketmanager von NuGet (nicht MSVC) aktualisiert und versucht, Json.NET neu zu installieren.
Get-Package
in der Konsole zeigt das installierte Paket an
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
Newtonsoft.Json 5.0.6 Json.NET is a popular high-performance JSON framework for .NET
Beim Deinstallieren mit `Uninstall-Package Newtonsoft.Json" wird "Das Paket 'Newtonsoft.Json' wurde nicht gefunden"
packages
Soll ich einfach von vorne anfangen und ein neues Projekt erstellen? : /
Inhalt von packages.dgml:
<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph GraphDirection="LeftToRight" xmlns="http://schemas.Microsoft.com/vs/2009/dgml">
<Nodes />
<Links />
<Categories>
<Category Id="Projekt" />
<Category Id="Paket" />
</Categories>
<Styles>
<Style TargetType="Node" GroupLabel="Projekt" ValueLabel="True">
<Condition Expression="HasCategory('Projekt')" />
<Setter Property="Background" Value="Blue" />
</Style>
</Styles>
</DirectedGraph>
In Ihrer Projektmappe oder Ihrem Projekt finden Sie eine Datei mit dem Namen packages.config
. Öffnen Sie diese Datei und Sie sehen alle Pakete, die NuGet
installiert hat.
Die Datei sieht ungefähr so aus:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Json" version="2.0.3" targetFramework="net45" />
</packages>
Löschen Sie einfach die Zeile Ihres Pakets und speichern Sie die Datei.
<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>
Führen Sie dann erneut NuGet
aus und es sollte installiert werden.
Das JSON.NET NuGet-Paket sollte einfach mit einem Windows Phone 8.0-Projekt zusammenarbeiten . Durch das Hinzufügen in VS2012 NuGet Manager wird die WP7-Version von JSON.NET übernommen. (Packages\Newtonsoft.Json.4.5.10\lib\sl3-wp\Newtonsoft.Json.dll)
JSON.NET ist jetzt auch als Portable Class Library verfügbar, die Sie von WP8 aus konsumieren können (verfügbar in NuGet oder in Quellform).
VS 2013: Klicken Sie in der Lösung mit der rechten Maustaste auf Referenzen und Verwalten von NuGet-Paketen. In der oberen linken Ecke finden Sie "Installierte Pakete". Wählen Sie das Paket aus und eine Deinstallationsoption ist verfügbar.
VS 2015: Klicken Sie in der Lösung mit der rechten Maustaste auf Referenzen und Verwalten von NuGet-Paketen. Klicken Sie oben rechts auf die Registerkarte "Installiert". Bewegen Sie den Mauszeiger über das Paket und das "X" erscheint zur Deinstallation.
VS 2017: Klicken Sie in der Lösung mit der rechten Maustaste und "NuGet-Pakete für Lösung verwalten" im linken oberen Bereich auf die Registerkarte "Installiert". Klicken Sie auf das Paket und im rechten Fenster wird eine Schaltfläche "Deinstallieren" angezeigt.
Ich hatte das gleiche Problem. Ich konnte mein Paket auch nach allen Änderungen von package.config nicht erneut installieren. Hier was für mich arbeiten.
In Ihrem Lösungsordner sollte sich ein "Paket" -Verzeichnis befinden. Öffnen Sie dieses Verzeichnis und löschen Sie das mit Ihrem Paket verknüpfte Verzeichnis.
Erledigt.
Ich saß gerade vier Stunden auf meinem neuen Windows 10-Computer und konnte nicht herausfinden, warum in Visual Studio 2015 keine Referenzen funktionierten und warum ich NuGet-Pakete nicht wiederherstellen konnte. Aus irgendeinem Grund fügte TFS zwei Paketordner hinzu:
Standorte:
C:\Benutzer\YourUser\Documents\Visual Studio 2015\Projects\YourProject\packages
C:\Users\YourUser\.nuget\packages
Wenn beide Paketordner entfernt wurden, konnte ich die NuGet-Pakete wiederherstellen und alles funktionierte wieder.
Es ist zwar etwas verwirrend, aber es gibt verschiedene Optionen, wenn Sie mit der rechten Maustaste auf die Lösung klicken und Nuget-Pakete verwalten auswählen. Sie sollten von dort aus deinstallieren können.
Sie sollten die Antwort hier überprüfen: Windows Phone 8 JSON für weitere Informationen zu Json.net und WP8.
Ich hatte ein ähnliches Problem in VS2017 (Neuinstallation). Ich habe mit einem älteren Projekt gearbeitet und versucht, ein relativ neues Paket zu installieren. Wenn ich das Paket von der grafischen Benutzeroberfläche aus installieren würde, blitzte es eine Sekunde lang, dann tat es nichts.
Das Problem war, dass mein Projekt ein niedrigeres .NET-Ziel als das Paket hatte. (Meine Lösung zielte auf 4.5 und das Paket auf 4.6.) Das .NET-Ziel wurde in meiner Projektkonfiguration in eine ausreichend neue Version geändert und das Problem wurde wiederhergestellt.
Dieses Problem kann durch Ausführen der folgenden Befehle angezeigt werden: (Namen geändert)
PM> Install-Package Package.NET
Attempting to gather dependency information for package 'Package.NET.1.0.0' with respect to project 'MyProject', targeting '.NETFramework,Version=v4.5'
Gathering dependency information took 0.19 ms
Attempting to resolve dependencies for package 'Package.NET.1.0.0' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'Package.NET.1.0.0'
Resolved actions to install package 'Package.NET.1.0.0'
Retrieving package 'Package.NET.1.0.0' from 'nuget.org'.
Install failed. Rolling back...
Package 'Package.NET.1.0.0' does not exist in project 'MyProject'
Package 'Package.NET.1.0.0' does not exist in folder 'C:\Code\MyProject\packages'
Executing nuget actions took 13.92 ms
Install-Package : Could not install package 'Package.NET.1.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5',
but the package does not contain any Assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ Install-Package Package.NET
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Ich habe diese Lösung ausprobiert
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>