Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 50975|Atbildi: 0

[Avots] .NET Core izlaiž viena faila ceļa problēmu

[Kopēt saiti]
Publicēts 2021-3-28 13:56:32 | | | |
Izmantojot .NET Core 3.1, lai izlaistu viena faila konsoles lietojumprogrammu, kas darbojas Linux sistēmā, galvenais, ko programmas kods dara, ir ļoti vienkāršs, tas ir:Lasiet konfigurācijas faila izvadi programmas direktorijā! Tomēr, publicējot vienu failu, lai to palaistu operētājsistēmā Linux, tiek teikts, ka fails nav atrasts.

Jaunie .NET Core līdzekļi izlaiž viena faila izpildāmo failu
https://www.itsvse.com/thread-8273-1-1.html

Esiet piesardzīgs ar System.Environment.CurrentDirectory, lai iegūtu pašreizējo direktoriju
https://www.itsvse.com/thread-9464-1-1.html
Testa kods:

Rezultāts ir šāds:

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/


Publicējot .NET Core lietojumprogrammu kā vienu failu, palaižot to CentOS sistēmā, programma tiek pašiegūta un izlaista/var/tmp/.net/root/direktoriju un pēc tam izsauciet direktorijā izlaisto programmu, kas var arī izskaidrot, kāpēc programma nevar atrast konfigurācijas failu.

šķīdums

Izmantojot System.Environment.CurrentDirectory, lai lasītu programmas ceļu, System.Environment.CurrentDirectory patiešām iegūst pašreizējo direktoriju, bet, ja programma A izsauc programmu B un programma B izmanto System.Environment.CurrentDirectory, lai iegūtu direktoriju. Tad B programmā iegūtais direktorijs vairs nav direktorijs, kurā atrodas B lietojumprogramma; Tas kļūst par direktoriju, kurā atrodas A.





Iepriekšējo:.NET Core Linux kļūda: nevarēja atrast instalētu derīgu ICU pakotni...
Nākamo:.NET Core ūdenszīmes problēmas Linux attēlos
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com