Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 50975|Svar: 0

[Kilde] .NET Core frigiver et enkelt filsti-problem

[Kopier link]
Opslået den 28-3-2021 13:56:32 | | | |
Ved at bruge .NET Core 3.1 til at udgive en enkeltfil konsolapplikation, der kører på et Linux-system, er det vigtigste programkoden gør meget simpelt, nemligLæs konfigurationsfilens output i programmappen! Men når du udgiver en enkelt fil til at køre på Linux, står der, at filen ikke findes.

De nye .NET Core-funktioner frigiver en enkeltfil eksekverbar fil
https://www.itsvse.com/thread-8273-1-1.html

Vær opmærksom på System.Environment.CurrentDirectory for at få den aktuelle mappe
https://www.itsvse.com/thread-9464-1-1.html
Testkode:

Outputtet er som følger:

AppDomain.CurrentDomain.SetupInformation.ApplicationBase:/var/tmp/.net/root/ImageWatermark/e5snojro.qyv/
Environment.CurrentDirectory:/root/test
AppDomain.CurrentDomain.BaseDirectory:/var/tmp/.net/root/ImageWatermark/e5snojro.qyv/


Når man udgiver en .NET Core-applikation som en enkelt fil, der kører den på et CentOS-system, udpakkes og udgives programmet selv/var/tmp/.net/root/og derefter kalder programmet, der er frigivet i kataloget, hvilket også kan forklare, hvorfor programmet ikke kan finde konfigurationsfilen.

opløsning

Ved at bruge System.Environment.CurrentDirectory til at læse programstien, får System.Environment.CurrentDirectory faktisk den aktuelle mappe, men hvis program A kalder program B og program B bruger System.Environment.CurrentDirectory til at hente kataloget. Så er den mappe, der opnås i B-programmet, ikke længere den mappe, hvor B-applikationen er placeret; Det bliver det register, hvor A er placeret.





Tidligere:.NET Core Linux-fejl: Kunne ikke finde en gyldig ICU-pakke installeret...
Næste:.NET Core-vandmærkningsproblemer på Linux-billeder
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com