Build Pi error incompatible packge, win-x64 linux-x64 werken

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • MrMonkE
  • Registratie: December 2009
  • Laatst online: 26-08 00:10

MrMonkE

★ EXTRA ★

Topicstarter
Omschrijving:
.net core build faalt op Pi door incompatible package maar Visual Studio kan -geeft wel een waarschuwing- met hetzelfde project gewoon een build voor linux-x64 en win-x64 een build voltooien.
Het is een dotnet core NET 5.0 ASPNET website..
Deze draait prima op IIS in win-x64 en als selfcontained app in linux-x64

Echter nu ben ik bezig hem op ARM64 te builden maar bij het volgende commando gaat het fout.
code:
1
RUN dotnet restore "./Happo-Linux.csproj"


code:
1
2
3
error NU1202:  Package ImageProcessor 2.9.1 is not compatible with net5.0 (.NETCoreApp,Version=v5.0). 
Package ImageProcessor 2.9.1 supports: net452 (.NETFramework,Version=v4.5.2)   
Failed to restore /src/Happo-Linux.csproj (in 5.02 sec).


Maar wat ik niet snap is dat wanneer ik in windows build ik een waarschuwing krijg en er gewoon een werkende binary gemaakt die op linux of windows werkt. Waarom kan de build op pi dat niet.
code:
1
2
3
4
5
warning NU1701: Package 'ImageProcessor 2.9.1' was restored using 
'.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, 
.NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' 
instead of the project target framework 'net5.0'. This package may not be fully compatible with your 
project.


Vraag:
Is er een build parameter waarmee de build ondanks de fout door gaat? (Zie onder voor details)
Visual Studio build voor linux-x64 en win-x64 gaan namelijk wel gewoon door.
Daar gaat mijn vraag over, hoe kan ik op de pi ook de waarschuwing negeren en gewoon een build voltooien? Of mis ik iets 'obvious'?


Relevante software en hardware die ik gebruik
raspberry-pi ARM64, visual studio 2019, docker om te builden op de raspberry-pi met de project sourcecode.


Wat ik al gevonden of geprobeerd heb
  • Betreffende Package bij de source zetten
  • Alle Packages bij de source zetten
  • Gezocht of er een build parameter is die dit soort errors negeert. Niet gevonden.
  • Gezocht naar mensen met soortgelijke errors. Maar meestal zijn het dan gevallen waar ze in het verkeerde framework zitten. Andere base images geprobeerd.
  • [i] /p:CoreOnly=True als build parameter[/i] (Ik zit nu in de ik probeer alles gewoon fase)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 Dockerfile voor de build
FROM mcr.microsoft.com/dotnet/runtime-deps:latest AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:latest AS build
WORKDIR /src
COPY ["./src/Happo-Linux.csproj", "./"]

RUN dotnet restore "./Happo-Linux.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "Happo-Linux.csproj" -c Release -o /app/build


FROM build AS publish
RUN dotnet publish "Happo-Linux.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Happo-Linux.dll"]

[ Voor 4% gewijzigd door MrMonkE op 22-01-2021 20:06 . Reden: opmaak ]

★ What does that mean? ★

Alle reacties


Acties:
  • 0 Henk 'm!

  • Flapmo
  • Registratie: April 2000
  • Laatst online: 15:22

Flapmo

and back is gigi!

Wat ik zo kan zien is dat het package ImageProcessor een dependency heeft op System.ValueTuple welke van .NET Framework (full) >4.5.0 komt. Dit geeft de warning ook aan, hij resolved via .NET Framework en niet via .NET standard/Core/5. Dit package zal dan niet werken op ARM (en eigenlijk ook niet op Linux?) omdat .NET framework daar niet beschikbaar is.

Swap ImageProcessor is voor ImageSharp en probeer het dan nog is.

"The purpose of computing is insight, not numbers." -- Richard Hamming


Acties:
  • +1 Henk 'm!

  • MrMonkE
  • Registratie: December 2009
  • Laatst online: 26-08 00:10

MrMonkE

★ EXTRA ★

Topicstarter
@Flapmo
Nee, draait perfect op linux ook. In een docker container.
Dus alles wat ik gebruik in die oackage werkt gewoon zowel onder linux als windows.
Ik denk dat alles wat ze gebruiken ook gewoon in .NET 5.0 zit en het dus gewoon werkt.

Probeer nu een binary er op te zetten maar de linux-arm binary die visual studio maakt heb ik nog niet werkend gekregen op arm.

Ik ga morgen denk ik even een versie maken waar die Library niet in zit.
Als dat werkend te krijgen is door mij op die Pi dan zal ik eens verder kijken voor alternatieven.

★ What does that mean? ★