Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 50975|Svar: 0

[Källa] .NET Core släpper ett problem med en enda filväg

[Kopiera länk]
Publicerad den 28 april 2021 13:56:32 | | | |
Genom att använda .NET Core 3.1 för att släppa en enkelfils-konsolapplikation som körs på ett Linux-system, är det huvudsakliga programkoden mycket enkelt, det vill sägaLäs konfigurationsfilens utdata i programkatalogen! Men när du publicerar en enda fil för att köra på Linux står det att filen inte hittas.

De nya .NET Core-funktionerna släpper en enfilskörbar fil
https://www.itsvse.com/thread-8273-1-1.html

Var försiktig med System.Environment.CurrentDirectory för att få tag på den aktuella katalogen
https://www.itsvse.com/thread-9464-1-1.html
Testkod:

Resultatet är följande:

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/


När en .NET Core-applikation publiceras som en enda fil, körs den på ett CentOS-system, packas programmet själv ut och släpps/var/tmp/.net/root/katalogen, och sedan anropa programmet som släppts i katalogen, vilket också kan förklara varför programmet inte kan hitta konfigurationsfilen.

lösning

Genom att använda System.Environment.CurrentDirectory för att läsa programspåret hämtar System.Environment.CurrentDirectory faktiskt den aktuella katalogen, men om program A anropar program B och program B använder System.Environment.CurrentDirectory för att hämta katalogen. Då är katalogen som erhålls i B-programmet inte längre den katalog där B-applikationen är placerad; Den blir katalogen där A finns.





Föregående:.NET Core Linux-fel: Kunde inte hitta ett giltigt ICU-paket installerat...
Nästa:.NET Core-vattenmärkningsproblem på Linux-bilder
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com