Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3803|Odpoveď: 7

[Tipy] Použite Roslyn na dynamickú kompiláciu C# kódu a jeho spustenie

[Kopírovať odkaz]
Zverejnené 6. 7. 2024 16:59:03 | | | |
Požiadavky: Projekt musí generovať rôzne algoritmy a logiku podľa potrieb zákazníka, v tomto čase nemusí byť kód napísaný mŕtvy a môže byť potrebný nejaký pravidlový engine na vykonanie prispôsobenej logiky.

.NET Compiler Platform, kódové označenie Roslyn, je súbor open-source API pre kompilátory a analýzy kódu od Microsoftu pre jazyky C# a Visual Basic (VB.NET).

Revízia:

Rozdiel medzi kompilátorom Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn kompilátorová platforma
https://www.itsvse.com/thread-10740-1-1.html
Najprv vytvorte novú konzolovú aplikáciu s nasledujúcim odkazom:

Kód je nasledovný:



Kód C# kompilujeme tak, aby sme vytvorili len test.exe veľkosť súboru3KB。 Výsledný súborový test.exe nemožno spustiť ako spustiteľný súbor pre Windows a chyba sa hlási nasledovne:

Nespracovaná výnimka: System.IO.FileNotFoundException: Nepodarilo sa načítať súbor alebo assembler "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" alebo jednu z jeho závislostí. Systém nedokáže nájsť zadaný súbor.
Preto spustite konzolovú aplikáciu pomocou nasledujúcich príkazov:

Po vykonaní sa chyba hlási nasledovne:

Vyskytla sa fatálna chyba. Knižnica 'hostpolicy.dll' potrebná na spustenie aplikácie sa nenachádzala v 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Nepodarilo sa mi spustiť ako samostatná aplikácia.
  - Aplikácia bola spustená ako samostatná aplikácia, pretože 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' nebola nájdená.
  - Ak by to mala byť aplikácia závislá od frameworku, pridajte súbor 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' a zadajte príslušný framework.
Zhruba povedané, potrebujete *.runtimeconfig.json súbor, ktorý obsahuje informácie o behu a použitej verzii .NET Core, pozri:Prihlásenie na hypertextový odkaz je viditeľné.

Takže vytvorte nový test.runtimeconfig.json súbor s nasledujúcou konfiguráciou:

Znovu spustiť príkaz a zistiť, že sa dá vykonať normálne, ako je znázornené na nasledujúcom obrázku:



Referencia:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:.NET/C# konvertuje PDF súbory na obrázky založené na PDFtoImage
Budúci:ERP Kingdee Cloud Starry Sky (1) Jednoduché pochopenie
 Prenajímateľ| Zverejnené 6. 7. 2024 16:59:46 |
.NET/C# implementuje horúce aktualizácie DLL pluginov na základe AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Prenajímateľ| Zverejnené 24. 7. 2024 17:25:55 |
 Prenajímateľ| Zverejnené 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\ 区别



Referenčné zostavy (informácie o typoch a metadáta, nepočítajúc konkrétne implementácie!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Runtime knižnica (špecifická implementácia): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Prenajímateľ| Zverejnené 3. 12. 2024 10:16:03 |
Referenčné zostavy a dokumentácia




 Prenajímateľ| Zverejnené 10. 12. 2024 17:46:00 |
Zároveň môžete vygenerovať symbolický súbor (.pdb)
 Prenajímateľ| Zverejnené 10. 12. 2024 17:49:22 |
Konfigurácia režimu uvoľnenia
 Prenajímateľ| Zverejnené 30. 6. 2025 13:40:49 |
Malá potvora Zverejnené 24.7.2024 o 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com