Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3803|Atbildi: 7

[Padomi] Roslyn izmantošana, lai dinamiski kompilētu C# kodu un palaistu to

[Kopēt saiti]
Publicēts 06.07.2024 16:59:03 | | | |
Prasības: Projektam ir jāģenerē dažādi algoritmi un loģika atbilstoši klienta vajadzībām, šobrīd kods var nebūt rakstīts miris, un pielāgotās loģikas izpildei var būt nepieciešams kāds noteikumu dzinējs.

.NET kompilatora platforma ar koda nosaukumu Roslyn ir Microsoft atvērtā koda kompilatora un koda analīzes API kopa C# un Visual Basic (VB.NET) valodām.

Pārskats:

Atšķirība starp Roslyn MSBuild kompilatoru
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn kompilatora platforma
https://www.itsvse.com/thread-10740-1-1.html
Vispirms izveidojiet jaunu konsoles lietojumprogrammu ar šādu atsauci:

Kods ir šāds:



Mēs kompilējam C# kodu, lai iegūtu tikai test.exe faila lielumu3 KB。 Iegūto failu test.exe nevar palaist kā Windows izpildāmo failu, un par kļūdu tiek ziņots šādi:

Neapstrādāts izņēmums: System.IO.FileNotFoundException: neizdevās ielādēt failu vai montāžu "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" vai kādu no tā atkarībām. Sistēma nevar atrast norādīto failu.
Tātad, izpildiet konsoles lietojumprogrammu ar šādām komandām:

Pēc izpildes kļūda tiek ziņota šādi:

Tika sastapta liktenīga kļūda. Lietojumprogrammas izpildei nepieciešamā bibliotēka "hostpolicy.dll" netika atrasta sadaļā "D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0".
Neizdevās palaist kā autonomu programmu.
  - Lietojumprogramma tika palaista kā patstāvīga lietotne, jo netika atrasts 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json'.
  - Ja šī ir no sistēmas atkarīga lietotne, pievienojiet failu "D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json" un norādiet atbilstošo ietvaru.
Aptuveni runājot, jums ir nepieciešams *.runtimeconfig.json fails, kas satur informāciju par izpildlaiku un izmantoto .NET Core versiju, atsauce:Hipersaites pieteikšanās ir redzama.

Tātad, izveidojiet jaunu test.runtimeconfig.json failu ar šādu konfigurāciju:

Atkārtoti palaidiet komandu un konstatējiet, ka to var izpildīt normāli, kā parādīts šajā attēlā:



Atsauce:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.





Iepriekšējo:.NET/C# konvertē PDF failus par attēliem, kuru pamatā ir PDFtoImage
Nākamo:ERP Kingdee mākoņa zvaigžņotās debesis (1) Vienkārša izpratne
 Saimnieks| Publicēts 06.07.2024 16:59:46 |
.NET/C# ievieš DLL spraudņa karstos atjauninājumus, kuru pamatā ir AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Saimnieks| Publicēts 24.07.2024 17:25:55 |
 Saimnieks| Publicēts 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\ 区别



Atsauces komplekti (tipa informācija un metadati, neieskaitot konkrētas implementācijas!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Izpildlaika bibliotēka (īpaša ieviešana): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Saimnieks| Publicēts 03.12.2024 10:16:03 |
Atsauces komplekti un dokumentācija




 Saimnieks| Publicēts 10.12.2024 17:46:00 |
Tajā pašā laikā varat ģenerēt simbolu failu (.pdb)
 Saimnieks| Publicēts 10.12.2024 17:49:22 |
Atbrīvošanas režīma konfigurēšana
 Saimnieks| Publicēts 30.06.2025 13:40:49 |
Mazais sārņi Publicēts 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com