Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3803|Răspunde: 7

[Bacșișuri] Folosește Roslyn pentru a compila dinamic codul C# și a-l rula

[Copiază linkul]
Postat pe 06.07.2024 16:59:03 | | | |
Cerințe: Proiectul trebuie să genereze algoritmi și logici diferiți în funcție de nevoile clientului; în acest moment, codul poate să nu fie scris mort, iar un motor de reguli poate fi necesar pentru a executa logica personalizată.

Platforma compilatoare .NET, cu numele de cod Roslyn, este setul de API-uri open-source pentru compilatoare și analiză a codului Microsoft pentru limbajele C# și Visual Basic (VB.NET).

Recenzie:

Diferența dintre compilatorul Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Platforma de compilator Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Mai întâi, creează o nouă aplicație de consolă cu următoarea referință:

Codul este următorul:



Compilam codul C# pentru a produce o dimensiune de fișier test.exe doar3KB。 Fișierul rezultat test.exe nu poate fi rulat ca executabil Windows, iar eroarea este raportată astfel:

Excepție negestionată: System.IO.FileNotFoundException: Nu a încărcat un fișier sau un ansamblu "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" sau una dintre dependențele sale. Sistemul nu poate găsi fișierul specificat.
Așadar, executați aplicația de consolă cu următoarele comenzi:

După execuție, eroarea este raportată astfel:

S-a întâmpinat o eroare fatală. Biblioteca 'hostpolicy.dll' necesară pentru a executa aplicația nu a fost găsită în 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Nu a reușit să ruleze ca o aplicație autonomă.
  - Aplicația a fost rulată ca o aplicație autonomă deoarece 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' nu a fost găsit.
  - Dacă aceasta ar trebui să fie o aplicație dependentă de framework, adăugați fișierul 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' și specificați cadrul corespunzător.
Pe scurt, ai nevoie de un fișier *.runtimeconfig.json, care conține informații de rulare și versiunea de .NET Core folosită, referință:Autentificarea cu hyperlink este vizibilă.

Așadar, creează un nou fișier test.runtimeconfig.json cu următoarea configurație:

Rerulează comanda și constată că poate fi executată normal, așa cum se arată în figura următoare:



Referință:

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.





Precedent:.NET/C# convertește PDF-urile în imagini bazate pe PDFtoImage
Următor:ERP Kingdee Cloud Starry Sky (1) Înțelegere simplă
 Proprietarul| Postat pe 06.07.2024 16:59:46 |
.NET/C# implementează actualizări calde ale pluginurilor DLL bazate pe AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Proprietarul| Postat pe 24.07.2024 17:25:55 |
 Proprietarul| Postat pe 03.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\ 区别



Ansambluri de referință (informații de tip și metadate, fără a include implementări specifice!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Bibliotecă de rulare (implementare specifică): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Proprietarul| Postat pe 03.12.2024 10:16:03 |
Ansambluri de referință și documentație




 Proprietarul| Postat pe 10.12.2024 17:46:00 |
În același timp, poți genera un fișier de simboluri (.pdb)
 Proprietarul| Postat pe 10.12.2024 17:49:22 |
Configurează modul de eliberare
 Proprietarul| Postat pe 30.06.2025 13:40:49 |
Little slag Postat la 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com