Skip to content

Generic linux-x64 RID for supported distros prevents shipping native dependencies in package #23396

@bording

Description

@bording

I have a NuGet package that needs to ship a native library via the runtimes/<RID>/native mechanism, and I need to vary the library by linux distro due to the dependencies it has, OpenSSL being the primary one.

I want to be able to run on all of the supported linux distros listed here, but while testing them, I've noticed that when running dotnet --info, some of them show a specific RID, while others just have linux-x64 listed as the RID. This makes it impossible to ensure the correct version of the library will be chosen.

If I understand the dotnet CLI code correctly, it appears that the reason some of them are falling back to the generic RID is because the runtime.json file hasn't been updated for them.

Here is the list of distros I have tested so far, and the RIDs that are displayed via dotnet --info:

  • CentOS 7 (centos.7-x64)
  • Fedora 25 (fedora.25-x64)
  • Fedora 26 (fedora.26-x64)
  • Debian 9 (linux-x64)
  • Ubuntu 14.04 (ubuntu.14.04-x64)
  • Ubuntu 16.04 (ubuntu.16.04-x64)
  • Ubuntu 17.04 (linux-x64)
  • Linux Mint 18.2 (linux-x64)
  • openSUSE 42.2 (linux-x64)

Was this just an oversight, or is this an intentional change to stop updating this file? If it was intentional, can you explain the reasoning?

I can't just ship a single library using the linux-x64 RID because, for example, I need to compile a separate library for Debian and openSUSE. Right now, it appears that I don't have a way to do that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Infrastructure-librariesquestionAnswer questions and provide assistance, not an issue with source code or documentation.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions