Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 50975|Odpoveď: 0

[Zdroj] .NET Core uvoľňuje problém s jednou cestou k súboru

[Kopírovať odkaz]
Zverejnené 28. 3. 2021 o 13:56:32 | | | |
Použitím .NET Core 3.1 na vydanie jednosúborovej konzolovej aplikácie bežiacej na Linuxovom systéme je hlavná vec, ktorú programový kód robí, veľmi jednoduchá, tedaPrečítajte výstup konfiguračného súboru v programovom adresári! Avšak keď publikujete jeden súbor na spustenie na Linuxe, píše sa, že súbor nie je nájdený.

Nové funkcie .NET Core uvoľňujú spustiteľný súbor s jedným súborom
https://www.itsvse.com/thread-8273-1-1.html

Dávajte si pozor na System.Environment.CurrentDirectory, aby ste získali aktuálny adresár
https://www.itsvse.com/thread-9464-1-1.html
Testovací kód:

Výstup je nasledovný:

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/


Pri publikovaní .NET Core aplikácie ako jedného súboru, ktorý sa spúšťa na systéme CentOS, program sa sám rozbalí a uvoľní/var/tmp/.net/root/a potom zavolať program uvoľnený v adresári, čo tiež vysvetľuje, prečo program nemôže nájsť konfiguračný súbor.

riešenie

Použitím System.Environment.CurrentDirectory na čítanie cesty programu System.Environment.CurrentDirectory skutočne získava aktuálny adresár, ale ak program A volá program B a program B použije System.Environment.CurrentDirectory na získanie adresára. Potom adresár získaný v programe B už nie je adresár, kde sa aplikácia B nachádza; Stáva sa adresárom, kde sa nachádza A.





Predchádzajúci:.NET Core Linux chyba: Nenašiel som platný ICU balík...
Budúci:Problémy s vodoznakovaním .NET Core na obrázkoch Linuxu
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com