Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 50975|Vastaus: 0

[Lähde] .NET Core julkaisee yksittäisen tiedostopolun ongelman

[Kopioi linkki]
Julkaistu 2021-3-28 13:56:32 | | | |
Käyttämällä .NET Core 3.1:tä yhden tiedoston konsolisovelluksen julkaisemiseen, joka toimii Linux-järjestelmässä, ohjelmakoodin pääasiallinen toiminta on hyvin yksinkertaista, eliLue konfiguraatiotiedoston tulos ohjelmahakemistosta! Kuitenkin, kun julkaiset yhden tiedoston Linuxille ajettavaksi, se sanoo, ettei tiedostoa löydy.

Uudet .NET Core -ominaisuudet julkaisevat yksittäisen tiedoston suoritettavan tiedoston
https://www.itsvse.com/thread-8273-1-1.html

Ole varovainen System.Environment.CurrentDirectoryn kanssa saadaksesi nykyisen hakemiston
https://www.itsvse.com/thread-9464-1-1.html
Testikoodi:

Tulos on seuraava:

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/


Kun .NET Core -sovellus julkaistaan yhtenä tiedostona ja ajetaan sitä CentOS-järjestelmässä, ohjelma puretaan itsestään ja vapautetaan/var/tmp/.net/root/ja kutsua hakemistossa julkaistua ohjelmaa, mikä voi myös selittää, miksi ohjelma ei löydä konfiguraatiotiedostoa.

ratkaisu

System.Environment.CurrentDirectorya käyttäen ohjelmapolun lukemiseen, System.Environment.CurrentDirectory saa todellakin nykyisen hakemiston, mutta jos ohjelma A kutsuu ohjelmaa B ja ohjelma B käyttää System.Environment.CurrentDirectorya hakemiston saamiseksi. Tällöin B-ohjelmassa saatu hakemisto ei enää ole se hakemisto, jossa B-sovellus sijaitsee; Siitä tulee hakemisto, jossa A sijaitsee.





Edellinen:.NET Core Linux -virhe: En löytänyt kelvollista ICU-pakettia asennettuna...
Seuraava:.NET Core -vesileimausongelmat Linux-kuvissa
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com