Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 50975|Válasz: 0

[Forrás] A .NET Core egyetlen fájlút problémát jelent meg

[Linket másol]
Közzétéve: 2021-3-28 13:56:32 | | | |
A .NET Core 3.1 használatával egy egyfájlos konzol alkalmazást adunk ki, amely Linux rendszeren fut, a programkód fő feladata nagyon egyszerű, vagyisOlvassa el a konfigurációs fájl kimenetét a programkönyvtárban! Viszont amikor egyetlen fájlt publikálsz Linuxon futtatni, azt mondja, hogy a fájl nem található.

Az új .NET Core funkciók egy egyfájlos futtatható fájlt adnak ki
https://www.itsvse.com/thread-8273-1-1.html

Légy óvatos a System.Environment.CurrentDirectory oldallal, hogy megkapd a jelenlegi könyvtárat
https://www.itsvse.com/thread-9464-1-1.html
Tesztkód:

A kimenet a következő:

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/


Amikor egy .NET Core alkalmazást egyetlen fájlként publikálnak, és futtatja azt egy CentOS rendszeren, a program önkibontja és kiadja/var/tmp/.net/root/a könyvtár menüjében, majd hívja meg a könyvtárban kiadott programot, ami magyarázatot ad arra is, hogy a program miért nem találja meg a konfigurációs fájlt.

megoldás

A System.Environment.CurrentDirectory segítségével a programút olvasható, a System.Environment.CurrentDirectory valóban megkapja az aktuális könyvtárat, de ha az A program B programot hívja, a B program pedig a System.Environment.CurrentDirectory segítségével kapja meg a könyvtárat. Ekkor a B programban megszerzett könyvtár már nem az a könyvtár, ahol a B alkalmazás található; Ez lesz az a könyvtár, ahol A található.





Előző:.NET Core Linux hiba: Nem találtam érvényes ICU csomagot telepítve...
Következő:.NET Core vízjelezési problémák Linux képeken
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com