Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 50975|Atsakyti: 0

[Šaltinis] .NET Core išleidžia vieno failo kelio problemą

[Kopijuoti nuorodą]
Publikuota: 2021-3-28 13:56:32 | | | |
Naudojant .NET Core 3.1 išleisti vieno failo konsolės programą, veikiančią Linux sistemoje, pagrindinis dalykas, kurį programos kodas daro, yra labai paprastas, tai yraSkaitykite konfigūracijos failo išvestį programos kataloge! Tačiau kai paskelbiate vieną failą, skirtą paleisti "Linux", sakoma, kad failas nerastas.

Naujos .NET Core funkcijos išleidžia vieno failo vykdomąjį failą
https://www.itsvse.com/thread-8273-1-1.html

Būkite atsargūs System.Environment.CurrentDirectory, kad gautumėte dabartinį katalogą
https://www.itsvse.com/thread-9464-1-1.html
Bandymo kodas:

Išvestis yra tokia:

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/


Skelbiant ".NET Core" programą kaip vieną failą, paleidžiant ją "CentOS" sistemoje, programa savaime išskleidžiama ir išleidžiama/var/tmp/.net/root/katalogą, tada paskambinkite kataloge išleistai programai, kuri taip pat gali paaiškinti, kodėl programa negali rasti konfigūracijos failo.

sprendimas

Naudojant System.Environment.CurrentDirectory programos keliui nuskaityti, System.Environment.CurrentDirectory iš tikrųjų gauna dabartinį katalogą, bet jei programa A iškviečia programą B, o programa B naudoja System.Environment.CurrentDirectory, kad gautų katalogą. Tada B programoje gautas katalogas nebėra katalogas, kuriame yra B programa; Tai tampa katalogu, kuriame yra A.





Ankstesnis:.NET Core Linux klaida: nepavyko rasti įdiegto galiojančio ICU paketo...
Kitą:.NET Core vandens ženklų problemos Linux nuotraukose
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com