The System.Runtime.InteropServices.RuntimeInformation
package will fail to install on NuGet 2.x because there is no lib\netstandard1.1
version. There is only a runtimes\win\lib\netstandard1.1
version, but as NuGet 2.x doesn't understand runtimes
, it'll fail.
This affects installing .NET Standard Libraries into a PCL Profile 111 as it's included by NETStandard.Library
when evaluating dependencies for pcl profiles.
To repro:
With VS 2013 and NuGet 2.12
S2Geometry
libraryActual results
Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets 'portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10', 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.
The S2Geometry
library is a netstandard1.0
library and follows the advice of having a dependency on netstandard.library 1.6.0
.
/cc @ericstj
Are there other packages in the same situation as well?
I'm running into this issue using VS2015 Update 3 and both a Profile44 and Profile111 library.
To repro:
With VS 2015 Community Update 3 and NuGet 3.5
_Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework._
To workaround use project.json in the PCL.
That workaround doesn't work for VS 2013 or 2012.
Yeah, keeping this bug open to track how to fix that. We could drop a reference assembly or some sort of default implementation into lib/netstandard1.1.
Across all of our packages, if they have a ref with netstandard version 1.2 or lower, and no RID-less implementation, we should consider exposing a reference assembly or PlatformNotSupported assembly in lib/netstandard
Any update on this?
No fix as of yet. Also adding @Priya91 to look at a potential lib/NETStandard1.1 implementation of RuntimeInformation that isn't platform specific.
I've had luck installing a netstandard1.1 library into a PCL with Profile111 by not installing dependencies (NETStandard.Library). Everything I need is in the Available Assemblies https://developer.xamarin.com/guides/cross-platform/advanced/available-assemblies/ ... I've also had luck so long as I don't target the entire NETStandard.Library and instead use fine-grained package refs to only what I need (and obviously then those packages are compat)
Looking into dropping windows implementation from runtimes to lib/netstandard1.1..
anything with this issue? i try to install via nuget autofac libraries with this message:
_Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', 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._
Would be nice to get it fixed soon
This work for me.
When i ran into that issue today. I had to install System.Runtime.InteropServices.RuntimeInformation before i install autofac.
This is fixed in 1.1.0.. will be available in .net core 1.1 packages.
@okosodovictor that worked for me too, thanks a lot man!
Despite @Priya91's comment that it was fixed in 1.1.0, I had to follow @okosodovictor's suggestion before I got it working.
When using @okosodovictor 's suggestion make sure that the dependency behaviour is set to 'Highest' in nuget package manager.
@okosodovictor thank you very much, it worked to me
My error was on installing sqlite-net-pcl in a solution with xamarin
@okosodovictor Thank you man, this solved the issue while trying to install sqlite-net-pcl on xamarin studio on a xamarin.forms project.
I was trying to use this with Xamarin Native targeting Profile 111 in PCL project. I was trying to install sqlite-net-pcl and it failed. After installing System.Runtime.InteropServices.RuntimeInformation first and then install sqlite-net-pcl, it worked like charm. :) 馃憤 thanks @okosodovictor
Thanks @okosodovictor !! Like others here, I was installing sqlite-net-pcl for a Xamarin.Forms PCL project in Visual Studio 2017 and your suggestion worked perfectly.
@okosodovictor You are the real MVP.
Followed @okosodovictor advice, still could not install sqlite-net-pcl vs 2017.
Just kidding. Forgot that package management console applies to one package at a time.... this worked.
@kokomola your comment was deleted as a violation of the .NET Foundation Code of Conduct (adopted by CoreFX repo) as it was insulting/derogatory. You may consider this an official warning.
Most helpful comment
This work for me.
When i ran into that issue today. I had to install System.Runtime.InteropServices.RuntimeInformation before i install autofac.
That just work for me.