See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3803|Vastuse: 7

[Nõuanded] Kasuta Roslyni, et dünaamiliselt kompileerida C# koodi ja käivitada

[Kopeeri link]
Postitatud 06.07.2024 16:59:03 | | | |
Nõuded: Projekt peab genereerima erinevaid algoritme ja loogikat vastavalt kliendi vajadustele, sel ajal ei pruugi kood olla surnud ning kohandatud loogika käivitamiseks võib olla vaja mingit reeglimootorit.

.NET kompilaatoriplatvorm, koodnimega Roslyn, on Microsofti avatud lähtekoodiga kompilaatorite ja koodianalüüsi API-de komplekt C# ja Visual Basic (VB.NET) keelte jaoks.

Läbivaatamine:

Erinevus Roslyn MSBuild kompilaatori vahel
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn kompilaatoriplatvorm
https://www.itsvse.com/thread-10740-1-1.html
Esiteks loo uus konsoolirakendus järgmise viitega:

Kood on järgmine:



Kompileerime C# koodi, et saada ainult test.exe failisuurus3KB。 Tulemuseks test.exe faili ei saa käivitada Windowsi käivitatava failina ning viga teatatakse järgmiselt:

Käsitlemata erand: System.IO.FileNotFoundException: Faili või assembleri "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" või selle sõltuvuse laadimine ebaõnnestus. Süsteem ei leia määratud faili.
Seega käivita konsoolirakendus järgmiste käskudega:

Pärast täitmist teatatakse viga järgmiselt:

Tekkis saatuslik viga. Rakenduse käivitamiseks vajalikku raamatukogu 'hostpolicy.dll' ei leitud 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Ei õnnestunud töötada iseseisva rakendusena.
  - Rakendus käivitati iseseisva rakendusena, kuna 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' ei leitud.
  - Kui see peaks olema raamistikust sõltuv rakendus, lisa fail 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' ja määra sobiv raamistik.
Umbkaudselt on vaja *.runtimeconfig.json faili, mis sisaldab käitusaega infot ja kasutatud .NET Core versiooni, viide:Hüperlingi sisselogimine on nähtav.

Seega loo uus test.runtimeconfig.json fail järgmise konfiguratsiooniga:

Käivita käsk uuesti ja avasta, et seda saab normaalselt täita, nagu on näidatud järgmisel joonisel:



Viide:

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.





Eelmine:.NET/C# teisendab PDF-id PDFtoImage põhjal piltideks
Järgmine:ERP Kingdee pilv täheline taevas (1) Lihtne arusaam
 Üürileandja| Postitatud 06.07.2024 16:59:46 |
.NET/C# rakendab DLL plugina kuumi uuendusi AssemblyLoadContext põhjal
https://www.itsvse.com/thread-10783-1-1.html
 Üürileandja| Postitatud 24.07.2024 17:25:55 |
 Üürileandja| Postitatud 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\ 区别



Viitekomplektid (tüübiinfo ja metaandmed, ilma konkreetsete rakendusteta!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Käitusaegne teek (spetsiifiline rakendus): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Üürileandja| Postitatud 03.12.2024 10:16:03 |
Viitekogud ja dokumentatsioon




 Üürileandja| Postitatud 10.12.2024 17:46:00 |
Samal ajal saad genereerida sümbolifaili (.pdb)
 Üürileandja| Postitatud 10.12.2024 17:49:22 |
Seadista vabastusrežiim
 Üürileandja| Postitatud 30.06.2025 13:40:49 |
Väike Postitatud 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com