How to deal with 'Package restore failed.! error? - c#

I have to install IdentityModel.OidcClient as a NuGet package and installation fails with
Package restore failed. Rolling back package changes for 'IdentityModel.OidcClient'.
NU1108 Cycle detected. IdentityModel.OidcClient -> IdentityModel.OidcClient (>= 3.1.2).
I cleared all the NuGet caches to no avail.
I made sure my class library has a target framework of .NET Standard 2.0 and the framework is supported by the IdentityModel version.
The second line from the error list is pointing at the first line of the project file (*.csproj) and it's content can be found below
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
I face the issue in Microsoft Visual Studio Professional 2019 Version 16.8.4
How do I get the package installed?

Related

Visual Studio 2022 Mac Error: NuGet packages need to be restored before building. NuGet MSBuild targets are missing and are needed for building

I have a .Net 6 project, I am getting the below error.
Error: NuGet packages need to be restored before building. NuGet
MSBuild targets are missing and are needed for building. The NuGet
MSBuild targets are generated when the NuGet packages are restored.
csproj file:
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Exe</OutputType>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>..\..</DockerfileContext>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>
Visual studio version: 17.4.2
I have followed this question also (restoring the packages), But it didn't help.
But I am able to build from the terminal using dotnet build successfully.
Also, I have other projects targeting .net 6 and I can build successfully using visual studio.

visual studio 2019 .csproj install latest NuGet version

I have a very simple VS2019 .csproj file which can be seen below:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AST.NxTestware.main" Version="1.0.0" />
</ItemGroup>
</Project>
When I save the csproj file, I can see in my right hand side the dependency is downloaded, and I can find the installed NuGet package on my PC
Under the manage nuget package window I can see a newer version 1.1.0
I want to edit my .csproj file so that it always installs the most recent NuGet package version, and I tried doing so by setting version="*"
https://learn.microsoft.com/en-us/nuget/concepts/package-versioning
but setting version=* causes my VS2019 dependency list to show a yellow warning circle now which wont go away, and if I check my local NuGet installation folder I can see that nothing got installed
How can I tell VS2019 to automatically install the latest version of my NuGet package?
According to your description, I did some tests related to your problem, but could not reproduce your problem.
You can try these suggestions and let me know if it doesn't work.
You can go to Tools>Options>NuGet Package Manager to Clear All NuGet Caches. Add this in your .csproj file “” and rebuild the project.
You can change a package source to check if other packages can use Version=”*”.
Please let me know If you get any update about the issue.

Package X is not compatible with netcoreapp3.1

I'm trying to run my .net core 3.1 project in VS 2019 but I'm getting errors like a below during building.
Severity Code Description Project File Line Suppression State
Error NU1202 Package System.Diagnostics.DiagnosticSource 4.5.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package System.Diagnostics.DiagnosticSource 4.5.0 does not support any target frameworks. WebApi.Base C:\Users\ilyas.varol.TEST\source\repos\performancemanagementprojects\WebApi.Base\WebApi.Base.csproj
Notes:
I made reinstalling all packages and .net core 3.1 sdk
The same project is running in another computer
UPDATE
I still haven't solve my problem. Therefore I want to elaborate my question with screenshots. I hope someone can help me.
Error list
Nuget Package Manager > Consolidate
First, clean nuget caches or delete all files under C:\Users\xxx(current user)\.nuget\packages.
Then, delete bin and obj folder.
Rebuild the project to test again.
I clicked right click on sln and then I clicked "Clean Solution" and Rebuild Solution". Finally, My problem is solved.
Following worked for me on VS 2019,
Tools-->Nuget Package Manager-->Package Manager Settings-->General-->Clear All NuGet Cache(s)
I had the same problem, as mentioned in the docs I updated the target framework.
Specifically, of my class libraries (in Blazor server core 3.1).
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> //remove this
<TargetFramework>net6.0</TargetFramework> //add this
</PropertyGroup>
</Project>
After this, you need to remove the bin, obj folder and rebuild the project.
This should get you are up and running again.
For me 5.0.10 worked properly. Today the latest version of this NuGet package is 6.0.6 but I tried 5.0.10 and worked properly

Native NuGet package installation failure

I created two NuGet packages: a native (C++) NuGet package and a regular .NET NuGet package that depends on the former one; and deployed both to an in-house NuGet repo.
Then I created a test .NET project and successfully installed the lead .NET package, while PM installs the native package as well.
Next, I tried to install the .NET package into an actual consumer .NET project, and the installation failed with the error message:
Could not install package 'Native 1.0.0'. You are trying to install this package into a project targets '.NETFramework,Version=v4.7.1', but the package does not contain any assembly references or content files that are compatible with that framework.
Both projects (test/successful and product/unsuccessful) indeed target .NET v4.7.1, both target AnyCPU and both use the same toolset.
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>Exe</OutputType>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
I am out off ideas why installation of my package produces the above error in the product project.
Thank you all in advance for your help.
Then I created a test .NET project and successfully installed the lead
.NET package, while PM installs the native package as well.
Next, I tried to install the .NET package into an actual consumer .NET
project, and the installation failed with the error message:
There's many workarounds for this kind of messgae the package does not contain any assembly references or content files that are compatible with that framework online. For your specific issue, since one succeeds, the other not:
I suggest clean the nuget cache first, then do other checks. Cause when you install or restore nuget pakcages, it will firstly try to find it in cache. Similar issue see this.
Then make sure all your projects in same solution use same way to manage nuget packages. (All PackageReference or all packages.config). And for VS217 and higher, packageReference is more recommended:) Similar issue see this.

It was not possible to find any compatible framework version. The specified framework 'Microsoft.NETCore.App', version '2.2.0' was not found

I had a .Net Core console app built and deployed.
The project's Platform target is x86.
Target framework is .Net Core 2.2(x86).
Although .Net Core 2.2 (x86) SDK is installed, I get following error after executing the command dotnet myapp.dll in Developer Command Prompt VS2017.
It was not possible to find any compatible framework version
The specified framework 'Microsoft.NETCore.App', version '2.2.0' was not found.
- The following versions are installed:
2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
The .Net Core 2.2(x86) SDK was installed under path "C:\Program Files (x86)\dotnet\shared", and System Environment Variables contains "C:\Program Files (x86)\dotnet\".
Any suggestion? Thanks!
~~~Update1
Following are part of .csproj info, sorry can't show whole thing.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<Platforms>AnyCPU;x86;x64</Platforms>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
After searching through Microsoft's documentations, I noticed that I was missing an additional required Nugget package.
The documentation says:
Before you can use the tools on a specific project, you'll need to add
the Microsoft.EntityFrameworkCore.Design package to it.
This is what I did by adding the package
$ dotnet add package Microsoft.EntityFrameworkCore.Design
Some months ago a Visual Studio update broke my capability of running tests. One of the issues was exactly this error. I have the x64 version of the SDK installed but VS tests runner was attempting to use the x86 version. The fix is just changing a setting inside the Test Explorer: Processor Architecture for AnyCPU Projects -> x64.
It seem to be a known issue for .Net Core installation, github.com/dotnet/core-setup/issues/4350
I have to uninstall all .Net Core packages, both x64 and x86, then reinstalled .Net Core x86 package. And that solved the problem.
This error also happened to me, and the answer I found was very easy, =>
in my solution I had two projects and a class library, the data folder was in the API project, in the case of Migration, I set the default project to the API and I got the same error, but the answer: I just set the API project as the startup project and tried again. The issue was gone.
Have fun.
Shahab Attarnejad
Can you change .csproj to add RunCommand like below:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<PlatformTarget>x86</PlatformTarget>
<Optimize>false</Optimize>
<RunCommand Condition="'$(PlatformTarget)' == 'x86'">$(MSBuildProgramFiles32)\dotnet\dotnet</RunCommand>
<RunCommand Condition="'$(PlatformTarget)' == 'x64'">$(ProgramW6432)\dotnet\dotnet</RunCommand>
</PropertyGroup>
</Project>
Maybe you need to add 2 line of RunCommand and update the correct path of dotnet on your laptop.
This issue happens when you are on windows 64bit and run x86 application.
For me, I just verified that all the projects in the solution is of same Target framework version. Once that was done, the issue was fixed.
You could view the Target framework version by right clicking a project (*.csproj) and go to properties.
When I got this error just now, it turned out that I need to run an update on Visual Studio.
Close your project window, open the Visual Studio Installer, and run the update.
If you have this issue in 2022. #Khai Nguyen answer worked for me.
HelloWorld.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp6.0</TargetFramework>
<ImplicitUsings>disable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
I changed the <TargetFramework>netcoreapp5.0</TargetFramework>
to
<TargetFramework>netcoreapp6.0</TargetFramework>
Since, 6.0 was already installed.
Visual Studio 2022 v17.3.6
WSL with dotnet 6.0.1 (in Ubuntu) and 6.0.10 (on Windows)
testEnvironments.json
"Testhost process exited with error: It was not possible to find any compatible framework version"
I needed to enalbe the Remote Testing install option in the Test Options:
I was using testenvironments.json for running the unit tests, but when picking my Ubuntu distribution from the list
no tests are discovered. The Output window (Tests output) shows the following:
Log level is set to Informational (Default).
Connected to test environment '< Local Windows Environment >'
Test data store opened in 0,323 sec.
Connected to test environment '< Local Windows Environment >'
========== Starting test discovery ==========
========== Test discovery skipped: All test containers are up to date ==========
WSL2 environment 'Ubuntu' is starting.
Connected to test environment 'Ubuntu'
WSL2 environment 'Ubuntu' is running.
========== Starting test discovery ==========
Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Testhost process for source(s) '/mnt/c/Users/user/source/repos/Project/Project.UnitTests/bin/Debug/net6.0/Project.UnitTests.dll' exited with error: You must install or update .NET to run this application.
App: /mnt/c/Users/user/source/repos/Project/Project.UnitTests/bin/Debug/net6.0/testhost.dll
Architecture: x64
Framework: 'Microsoft.AspNetCore.App', version '6.0.0' (x64)
.NET location: /usr/local/.dotnet_install/
No frameworks were found.
Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed
To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=6.0.0&arch=x64&rid=ubuntu.22.04-x64
. Please check the diagnostic logs for more information.
at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.ThrowOnTestHostExited(IEnumerable`1 sources, Boolean testHostExited)
at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, String runSettings)
at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyDiscoveryManager.DiscoverTests(DiscoveryCriteria discoveryCriteria, ITestDiscoveryEventsHandler2 eventHandler)
========== Test discovery aborted: 0 Tests found in 704,8 ms ==========
After restarting Visual Studio, it suggested me to install the missing runtime inside WSL:

Categories

Resources