Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System.Runtime.Loader should be netcoreapp1.0, not netstandard1.5 #18241

Closed
gulbanana opened this issue Aug 20, 2016 · 11 comments
Closed

System.Runtime.Loader should be netcoreapp1.0, not netstandard1.5 #18241

gulbanana opened this issue Aug 20, 2016 · 11 comments
Assignees
Labels
Milestone

Comments

@gulbanana
Copy link

It's actually a coreclr-specific API and doesn't work on other .net standard 1.5 platforms like net462 and xamarin.

@weshaggard
Copy link
Member

@ericstj?

@ericstj
Copy link
Member

ericstj commented Sep 1, 2016

@gulbanana the package would fail to install correctly if you install it into a desktop project. I suspect the problem you're pointing out is that if you're just building a netstandard library nothing stops you from using this, correct?

The problem here is that most of these packages that have framework-specific implementations were relying on gaurdrails to block them from being used in netstandard libraries, but the gaurdrails check was removed from NuGet without a replacement.

We made all the packages declare their API as NETStandard so that we wouldn't be blocking other frameworks from implementing this API. In other words, someone could implement this for Desktop or Xamarin in a seperate package and packages which depend on it would just start working without forcing us to ship a new version of the package (and gaurdrails would start passing).

Given that gaurdrails was cut and not likely to come back and folks aren't keen on individual package refs & install state to represent compatibility I think we can take this suggestion.

Essentially for any package that doesn't implement all of the frameworks for a particular netstandard version, don't expose a netstandard ref. We may need to be selective if that breaks existing scenarios (eg: ref.emit).

@gulbanana
Copy link
Author

you're right, I was building a netstandard library and wanted a way to know i shouldn't use the package. for now, I've made my own library dual-tfm net452/netcoreapp1.0 and used separate implementations of assembly loading.

that history makes sense and I think the new plan is good. it will be nice to reach a world where library authors can support unanticipated future platforms by using safe-for-everything deps.

@ericstj
Copy link
Member

ericstj commented Sep 2, 2016

FWIW if you wanted "extra protection" you could add supports clauses to your project.json. This will evaluate all your dependencies for the platforms you list. This is the "gaurdrails" feature I talked about, it's not enabled by default.

In the project.json you'd add the following:

  "supports": {
    "netcoreapp1.0.app" : {},
    "net462.app": {}
  },

I'd still like to keep this issue open to evaluate what we want to do for these packages.

@joperezr
Copy link
Member

joperezr commented Dec 9, 2016

@ericstj is this something we still want to pursue for 1.2.0 release? If so, we need to get a list of the packages we need to switch to runnable TFMs instead of netstandard ref so that somebody can pick this one up.

@danmoseley
Copy link
Member

@ericstj can you answer the above. trying to figure out whether 2.0,future, or close this.

@danmoseley
Copy link
Member

cc @joperezr

@ericstj
Copy link
Member

ericstj commented Mar 1, 2017

We no longer produce a package for this so in that sense it is fixed.

@gulbanana
Copy link
Author

gulbanana commented Mar 2, 2017

Is S.R.L. available in netstandard 2's unified package, then? Sounds good, as long as it actually works on all platforms.

@mellinoe
Copy link
Contributor

mellinoe commented Mar 2, 2017

No, it's only available in the .NET Core package, and only works on CoreCLR.

@gulbanana
Copy link
Author

Also fine!

@msftgits msftgits transferred this issue from dotnet/corefx Jan 31, 2020
@msftgits msftgits added this to the 2.0.0 milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 29, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

7 participants