Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 50975|Απάντηση: 0

[Πηγή] Το .NET Core κυκλοφορεί ένα ζήτημα διαδρομής αρχείου

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2021-3-28 13:56:32 | | | |
Χρησιμοποιώντας το .NET Core 3.1 για την κυκλοφορία μιας εφαρμογής κονσόλας ενός αρχείου, που εκτελείται σε σύστημα Linux, το κύριο πράγμα που κάνει ο κώδικας του προγράμματος είναι πολύ απλό, δηλαδήΔιαβάστε την έξοδο του αρχείου διαμόρφωσης στον κατάλογο του προγράμματος! Ωστόσο, όταν δημοσιεύετε ένα μόνο αρχείο για εκτέλεση σε Linux, λέει ότι το αρχείο δεν βρέθηκε.

Οι νέες δυνατότητες του .NET Core κυκλοφορούν ένα εκτελέσιμο αρχείο ενός αρχείου
https://www.itsvse.com/thread-8273-1-1.html

Να είστε προσεκτικοί με το System.Environment.CurrentDirectory για να λάβετε τον τρέχοντα κατάλογο
https://www.itsvse.com/thread-9464-1-1.html
Κωδικός δοκιμής:

Η έξοδος έχει ως εξής:

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/


Όταν δημοσιεύετε μια εφαρμογή .NET Core ως μεμονωμένο αρχείο, εκτελώντας την σε ένα σύστημα CentOS, το πρόγραμμα εξάγεται και κυκλοφορεί μόνο του/var/tmp/.net/root/και, στη συνέχεια, καλέστε το πρόγραμμα που κυκλοφόρησε στον κατάλογο, το οποίο μπορεί επίσης να εξηγήσει γιατί το πρόγραμμα δεν μπορεί να βρει το αρχείο διαμόρφωσης.

λύση

Χρησιμοποιώντας το System.Environment.CurrentDirectory για να διαβάσει τη διαδρομή του προγράμματος, το System.Environment.CurrentDirectory λαμβάνει πράγματι τον τρέχοντα κατάλογο, αλλά εάν το πρόγραμμα Α καλεί το πρόγραμμα Β και το πρόγραμμα Β χρησιμοποιεί το System.Environment.CurrentDirectory για να λάβει τον κατάλογο. Στη συνέχεια, ο κατάλογος που λαμβάνεται στο πρόγραμμα Β δεν είναι πλέον ο κατάλογος όπου βρίσκεται η εφαρμογή Β. Γίνεται ο κατάλογος όπου βρίσκεται το Α.





Προηγούμενος:Σφάλμα .NET Core Linux: Δεν ήταν δυνατή η εύρεση εγκατεστημένου έγκυρου πακέτου ICU...
Επόμενος:Ζητήματα υδατογράφησης .NET Core σε εικόνες Linux
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com