gentoo / dotnet

[MIRROR] Newer mono, .NET languages, and libraries
https://gitweb.gentoo.org/repo/proj/dotnet.git
79 stars 57 forks source link

Thanks for dotnet core 3.0 #447

Open fluffynuts opened 4 years ago

fluffynuts commented 4 years ago

Just wanted to say thanks for the dotnet core 3.0 release & ask if it's possible to have multiple runtimes side-by-side? I mean to update projects, but in the meantime, I also have to be able to build existing ones, but I see messages like:

  The specified framework 'Microsoft.NETCore.App', version '2.0.9' was not found.
    - The following frameworks were found:
        3.0.0 at [/opt/dotnet_core/shared/Microsoft.NETCore.App]

  You can resolve the problem by installing the specified framework and/or SDK.

  The .NET Core frameworks can be found at:
    - https://aka.ms/dotnet-download
/opt/dotnet_core/sdk/NuGetFallbackFolder/microsoft.aspnetcore.razor.design/2.2.0/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(131,5): error : rzc generate exited with code 150. [/home/daf/code/codeo/iraas/src/IRAAS/IRAAS.csproj]                                                                                                                                 
filmor commented 4 years ago

This is possible since about a week, just try it out :)

You can request an explicit slot using emerge dotnetcore-sdk-bin:2.2

fluffynuts commented 4 years ago

Thanks! Most excellent and confirmed working :D

fluffynuts commented 1 year ago

Unfortunately, to resurrect something quite old, slotting doesn't seem to be able to solve more recent requirements of side-by-side, specifically net7.0 with net6.0 - eg https://github.com/gentoo/dotnet/issues/516:

❯ emerge dotnet-sdk-bin:6.0
Calculating dependencies... done!
Dependency resolution took 10.42 s.

[ebuild  NS   ~] dev-dotnet/dotnet-sdk-bin-6.0.404 [7.0.200]
[blocks B      ] dev-dotnet/dotnet-sdk-bin:6.0[dotnet-symlink(+)] ("dev-dotnet/dotnet-sdk-bin:6.0[dotnet-symlink(+)]" is soft blocking dev-dotnet/dotnet-sdk-bin-7.0.200)
[blocks B      ] dev-dotnet/dotnet-sdk-bin:7.0[dotnet-symlink(+)] ("dev-dotnet/dotnet-sdk-bin:7.0[dotnet-symlink(+)]" is soft blocking dev-dotnet/dotnet-sdk-bin-6.0.404)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-dotnet/dotnet-sdk-bin-6.0.404:6.0/6.0::gentoo, ebuild scheduled for merge) pulled in by
    dotnet-sdk-bin:6.0
    dev-dotnet/dotnet-sdk-bin required by @selected 

  (dev-dotnet/dotnet-sdk-bin-7.0.200:7.0/7.0::gentoo, installed) pulled in by
    dev-dotnet/dotnet-sdk-bin:7.0[dotnet-symlink(+)] required by (virtual/dotnet-sdk-7.0:7.0/7.0::gentoo, installed) USE="" ABI_X86="(64)"
    dev-dotnet/dotnet-sdk-bin required by @selected 

I feel like slotting is probably the correct way to solve this, but it's not currently possible.

filmor commented 1 year ago

It is. You just need to ensure that exactly one version has USE=dotnet-symlink. It's not ideal because the slotted /usr/bin/dotnet will by default not be able to see the other installed frameworks, but that's fixable with a few more symlinks :)

fluffynuts commented 1 year ago

There was another issue where someone was asking about 6.0 in 7.0 - I've mentioned this discussion and the resolution there.

Also, I've learned a little more about slotting, which is a very cool feature of portage that I've never really needed before, tho have read about before.

slonopotamus commented 1 year ago

the slotted /usr/bin/dotnet will by default not be able to see the other installed frameworks, but that's fixable with a few more symlinks :)

Is there any tracking issue for this?