Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 50975|Odgovoriti: 0

[Vir] .NET Core sprošča težavo z eno samo potjo do datoteke

[Kopiraj povezavo]
Objavljeno 28. 3. 2021 ob 13:56:32 | | | |
Z uporabo .NET Core 3.1 za izdajo konzolne aplikacije z eno datoteko, ki teče na Linux sistemu, je glavna naloga programske kode zelo preprosta, torejPreberi izhod konfiguracijske datoteke v programski mapi! Vendar pa, ko objaviš eno samo datoteko za zagon na Linuxu, piše, da datoteka ni najdena.

Nove funkcije .NET Core izdajajo izvršljivo datoteko z eno datoteko
https://www.itsvse.com/thread-8273-1-1.html

Bodite previdni pri System.Environment.CurrentDirectory za pridobitev trenutne mape
https://www.itsvse.com/thread-9464-1-1.html
Testna koda:

Izhod je naslednji:

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/


Ko objavljate .NET Core aplikacijo kot eno datoteko in jo zaženete na sistemu CentOS, se program samodejno razširi in sprosti/var/tmp/.net/root/in nato pokliče program, ki je bil sproščen v mapi, kar lahko pojasni tudi, zakaj program ne najde konfiguracijske datoteke.

rešitev

Z uporabo System.Environment.CurrentDirectory za branje poti programa System.Environment.CurrentDirectory res dobi trenutni imenik, vendar če program A kliče program B, program B pa uporabi System.Environment.CurrentDirectory za pridobitev imenika. Takrat imenik, pridobljen v programu B, ni več imenik, kjer se nahaja aplikacija B; Postane imenik, kjer se nahaja A.





Prejšnji:.NET Core Linux napaka: Nisem našel veljavnega ICU paketa...
Naslednji:Težave z vodnimi žigi pri .NET Core na slikah Linuxa
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com