Reputation: 3206
I've set up my project with Visual Studio Express 2012, added some C# code, and successfully compiled/deployed to emulator. At some point I decided I want to do something with JSON, and I found that I should use the Json.NET framework, which is available as a NuGet package. I have added this framework successfully using the command Install-Package Newtonsoft.Json
.
I tried to install an update which MSVC offered two days ago, and the installation failed, leaving me unable to open my project again. Reinstalling MSVC didn't help, so I ended up restoring Windows to a previous state. I was able to open my project again, and I wanted to reinstall the NuGet package (not knowing it is installed inside the project, not MSVC). It gave me errors upon installing, so I tried to uninstall everything from package console.
Long story short:
Get-Package
Install-Package Newtonsoft.Json
again gives me the error
Newtonsoft.Json 5.0.6 could not be installed. You try to install this package in a project referencing "WindowsPhone,Version=v8.0", the package however does not contain assemblies compatible with this framework
Now I'm completely lost. I don't know how to install the package properly, nor how to remove it properly. Is my project file broken? How can I repair it?
[edit] Now it gets even more confusing. I've just updated the NuGet package manager (not MSVC though), and tried to reinstall Json.NET.
Get-Package
in the console shows the package as installed
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
Newtonsoft.Json 5.0.6 Json.NET is a popular high-performance JSON framework for .NET
Trying to uninstall with `Uninstall-Package Newtonsoft.Json" gives "The Package 'Newtonsoft.Json' could not be found"
packages
directoryShould I just start over from scratch and create a new project? :/
Contents of 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>
Upvotes: 45
Views: 113942
Reputation: 15865
In your Solution or Project you will find a file called packages.config
. Open this file and you will see all the packages that NuGet
has installed.
The file will look something like this:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Json" version="2.0.3" targetFramework="net45" />
</packages>
Simply delete the line of your package and save the file.
<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>
Then run NuGet
again and it should install.
The JSON.NET NuGet package should just work with a Windows Phone 8.0 project. Adding it in VS2012 NuGet manager pulls in the WP7 version of JSON.NET. (packages\Newtonsoft.Json.4.5.10\lib\sl3-wp\Newtonsoft.Json.dll)
JSON.NET is now also available as a Portable Class Library which you can consume from WP8 (available in NuGet or in source form).
Upvotes: 66
Reputation: 69968
Just sat four hours on my new Windows 10 machine and couldn't figure out why no references worked in Visual Studio 2015 and why I could not restore NuGet packages. For some reason TFS added two packages folders:
Locations:
C:\Users\YourUser\Documents\Visual Studio 2015\Projects\YourProject\packages
C:\Users\YourUser\.nuget\packages
When both of the package folders were removed I could restore NuGet packages and everything worked again.
Upvotes: 8
Reputation: 326
I had a similar problem in VS2017 (fresh install). I was working with an older project trying to install a relatively new package. When I would install the package from the GUI, it flashed for a second, then did nothing.
The problem was that my project had a lower .NET target than the package. (My solution was targeting 4.5, and the package targeted 4.6). Changing the .NET target to a new enough version in my project configuration and rebuilding fixed the issue.
This issue can be seen by running the following commands: (Names changed)
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
Upvotes: 0
Reputation: 21452
I tried this solution and its works
<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>
Upvotes: 0
Reputation: 5160
I had the same problem. I wasn't able to re-install my package even after all the package.config modifications. Here what work for me.
In your solution folder there should be a "packages" directory. Open this directory and delete the directory associated with your package.
Done.
Upvotes: 27
Reputation: 5549
It is indeed a bit confusing, but there are different options available if you right-click the solution and choose manage nuget packages. You should be able to uninstall from there.
You should check the answer here: Windows Phone 8 JSON for more information on Json.net and WP8.
Upvotes: 1