Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 50975|Svare: 0

[Kilde] .NET Core frigjør et enkelt filsti-problem

[Kopier lenke]
Publisert 28.03.2021 13:56:32 | | | |
Ved å bruke .NET Core 3.1 for å slippe en konsollapplikasjon med én fil, kjørende på et Linux-system, er det viktigste programkoden gjør veldig enkelt, nemligLes konfigurasjonsfilens utdata i programkatalogen! Men når du publiserer en enkelt fil for å kjøre på Linux, står det at filen ikke er funnet.

De nye .NET Core-funksjonene frigjør en enkeltfil-kjørbar fil
https://www.itsvse.com/thread-8273-1-1.html

Vær forsiktig med System.Environment.CurrentDirectory for å få den nåværende katalogen
https://www.itsvse.com/thread-9464-1-1.html
Testkode:

Resultatet 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 publiserer en .NET Core-applikasjon som en enkelt fil, kjører den på et CentOS-system, pakkes programmet ut selv og frigjøres/var/tmp/.net/root/katalogen, og deretter kalle programmet som er frigitt i katalogen, noe som også kan forklare hvorfor programmet ikke finner konfigurasjonsfilen.

løsning

Ved å bruke System.Environment.CurrentDirectory for å lese programstien, henter System.Environment.CurrentDirectory faktisk den nåværende katalogen, men hvis program A kaller program B og program B bruker System.Environment.CurrentDirectory for å hente katalogen. Da er katalogen som oppnås i B-programmet ikke lenger katalogen der B-applikasjonen er plassert; Den blir katalogen der A befinner seg.





Foregående:.NET Core Linux-feil: Fant ikke en gyldig ICU-pakke installert...
Neste:.NET Core-vannmerkingsproblemer på Linux-bilder
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com