Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 50975|Odpověď: 0

[Zdroj] .NET Core vydává problém s jedinou cestou k souboru

[Kopírovat odkaz]
Zveřejněno 28. 3. 2021 13:56:32 | | | |
Použitím .NET Core 3.1 k vydání jednosouborové konzolové aplikace běžící na systému Linux je hlavní věc, kterou programový kód dělá, velmi jednoduchá, tedyPřečtěte výstup konfiguračního souboru v adresáři programu! Když ale publikujete jeden soubor pro spuštění na Linuxu, píše se, že soubor není nalezen.

Nové funkce .NET Core vydávají spustitelný soubor s jedním souborem
https://www.itsvse.com/thread-8273-1-1.html

Buďte opatrní u System.Environment.CurrentDirectory pro získání aktuálního adresáře
https://www.itsvse.com/thread-9464-1-1.html
Testovací kód:

Výstup je následující:

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/


Při publikování .NET Core aplikace jako jednoho souboru a spuštění na systému CentOS se program sám rozbalí a uvolní/var/tmp/.net/root/a poté volat program uvolněný v adresáři, což také vysvětluje, proč program nemůže najít konfigurační soubor.

řešení

Pomocí System.Environment.CurrentDirectory pro čtení cesty programu System.Environment.CurrentDirectory skutečně získává aktuální adresář, ale pokud program A volá program B a program B používá System.Environment.CurrentDirectory k získání adresáře. Pak adresář získaný v programu B již není adresářem, kde se aplikace B nachází; Stává se adresářem, kde se nachází A.





Předchozí:.NET Core Linux Error: Nepodařilo se najít platný ICU balíček nainstalovaný...
Další:Problémy s vodoznakováním .NET Core na obrázcích Linuxu
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com