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

Άποψη: 3803|Απάντηση: 7

[Συμβουλές] Χρησιμοποιήστε το Roslyn για να μεταγλωττίσετε δυναμικά τον κώδικα C# και να τον εκτελέσετε

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/7/2024 4:59:03 μ.μ. | | | |
απαιτήσεις: Το έργο πρέπει να δημιουργήσει διαφορετικούς αλγόριθμους και λογική σύμφωνα με τις ανάγκες του πελάτη, αυτή τη στιγμή, ο κώδικας ενδέχεται να μην είναι γραμμένος νεκρός και μπορεί να απαιτείται κάποια μηχανή κανόνων για την εκτέλεση της προσαρμοσμένης λογικής.

Η πλατφόρμα μεταγλωττιστή .NET, με την κωδική ονομασία Roslyn, είναι το σύνολο API μεταγλωττιστή ανοιχτού κώδικα και ανάλυσης κώδικα της Microsoft για τις γλώσσες C# και Visual Basic (VB.NET).

Αναθεώρηση:

Η διαφορά μεταξύ του μεταγλωττιστή Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

Πλατφόρμα μεταγλωττιστή .NET/C# Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Αρχικά, δημιουργήστε μια νέα εφαρμογή κονσόλας με την ακόλουθη αναφορά:

Ο κωδικός έχει ως εξής:



Μεταγλωττίζουμε τον κώδικα C# για να παράγουμε μόνο ένα test.exe μέγεθος αρχείου3 KB。 Το αρχείο που προκύπτει test.exe δεν μπορεί να εκτελεστεί ως εκτελέσιμο αρχείο των Windows και το σφάλμα αναφέρεται ως εξής:

Μη χειριζόμενη εξαίρεση: System.IO.FileNotFoundException: Απέτυχε η φόρτωση ενός αρχείου ή μιας συγκρότησης "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" ή μιας από τις εξαρτήσεις του. Το σύστημα δεν μπορεί να βρει το καθορισμένο αρχείο.
Έτσι, εκτελέστε την εφαρμογή κονσόλας με τις ακόλουθες εντολές:

Μετά την εκτέλεση, το σφάλμα αναφέρεται ως εξής:

Παρουσιάστηκε ένα μοιραίο λάθος. Η βιβλιοθήκη 'hostpolicy.dll' που απαιτείται για την εκτέλεση της εφαρμογής δεν βρέθηκε στο 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Απέτυχε να εκτελεστεί ως αυτόνομη εφαρμογή.
  - Η εφαρμογή εκτελέστηκε ως αυτόνομη εφαρμογή επειδή δεν βρέθηκε το 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json'.
  - Εάν αυτή πρέπει να είναι μια εφαρμογή που εξαρτάται από το πλαίσιο, προσθέστε το αρχείο 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' και καθορίστε το κατάλληλο πλαίσιο.
Σε γενικές γραμμές, χρειάζεστε ένα αρχείο *.runtimeconfig.json, το οποίο περιέχει πληροφορίες χρόνου εκτέλεσης και την έκδοση του .NET Core που χρησιμοποιείται, αναφορά:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Έτσι, δημιουργήστε ένα νέο αρχείο test.runtimeconfig.json με την ακόλουθη διαμόρφωση:

Εκτελέστε ξανά την εντολή και βρείτε ότι μπορεί να εκτελεστεί κανονικά, όπως φαίνεται στην παρακάτω εικόνα:



Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:Το .NET/C# μετατρέπει αρχεία PDF σε εικόνες με βάση το PDFtoImage
Επόμενος:ERP Kingdee Cloud Έναστρος ουρανός (1) Απλή κατανόηση
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/7/2024 4:59:46 μ.μ. |
Το .NET/C# υλοποιεί καυτές ενημερώσεις προσθηκών DLL με βάση το AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 24/7/2024 5:25:55 μ.μ. |
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/12/2024 10:14:58 π.μ. |
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0 和 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\ 区别



Συγκροτήματα αναφοράς (πληροφορίες τύπου και μεταδεδομένα, χωρίς συγκεκριμένες υλοποιήσεις!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Βιβλιοθήκη χρόνου εκτέλεσης (συγκεκριμένη υλοποίηση): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/12/2024 10:16:03 π.μ. |
Συγκροτήματα αναφοράς και τεκμηρίωση




 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 10/12/2024 5:46:00 μ.μ. |
Ταυτόχρονα, μπορείτε να δημιουργήσετε ένα αρχείο συμβόλων (.pdb)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 10/12/2024 5:49:22 μ.μ. |
Διαμόρφωση λειτουργίας απελευθέρωσης
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 30/6/2025 1:40:49 μ.μ. |
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com