Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3803|Atsakyti: 7

[Patarimai] Naudokite Roslyn dinamiškai kompiliuoti C# kodą ir jį paleisti

[Kopijuoti nuorodą]
Paskelbta 2024-07-06 16:59:03 | | | |
Reikalavimai: Projektas turi generuoti skirtingus algoritmus ir logiką pagal kliento poreikius, šiuo metu kodas gali būti negyvas, o pritaikytai logikai vykdyti gali prireikti tam tikro taisyklių variklio.

.NET kompiliatoriaus platforma, kodiniu pavadinimu Roslyn, yra "Microsoft" atvirojo kodo kompiliatoriaus ir kodo analizės API rinkinys, skirtas C# ir Visual Basic (VB.NET) kalboms.

Peržiūra:

Skirtumas tarp Roslyn MSBuild kompiliatoriaus
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn kompiliatoriaus platforma
https://www.itsvse.com/thread-10740-1-1.html
Pirmiausia sukurkite naują konsolės programą su šia nuoroda:

Kodas yra toks:



Mes kompiliuojame C# kodą, kad sukurtume tik test.exe failo dydį3KB。 Gautas failo test.exe negali būti paleistas kaip "Windows" vykdomasis failas, o apie klaidą pranešama taip:

Neapdorota išimtis: System.IO.FileNotFoundException: nepavyko įkelti failo arba rinkinio "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" arba vienos iš jo priklausomybių. Sistema negali rasti nurodyto failo.
Taigi, vykdykite konsolės programą šiomis komandomis:

Po vykdymo apie klaidą pranešama taip:

Buvo padaryta lemtinga klaida. Biblioteka 'hostpolicy.dll', reikalinga programai vykdyti, nerasta 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Nepavyko paleisti kaip savarankiškos programos.
  - Programa buvo paleista kaip savarankiška programa, nes nebuvo rasta "D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json".
  - Jei tai turėtų būti nuo sistemos priklausanti programa, pridėkite failą "D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json" ir nurodykite atitinkamą sistemą.
Grubiai tariant, jums reikia *.runtimeconfig.json failo, kuriame yra vykdymo laiko informacija ir naudojama .NET Core versija, nuoroda:Hipersaito prisijungimas matomas.

Taigi, sukurkite naują test.runtimeconfig.json failą su tokia konfigūracija:

Iš naujo paleiskite komandą ir pastebėkite, kad ją galima vykdyti įprastai, kaip parodyta šiame paveikslėlyje:



Nuoroda:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.





Ankstesnis:.NET/C# konvertuoja PDF failus į vaizdus pagal PDFtoImage
Kitą:ERP Kingdee debesis žvaigždėtas dangus (1) Paprastas supratimas
 Savininkas| Paskelbta 2024-07-06 16:59:46 |
.NET/C# įgyvendina DLL papildinio karštuosius atnaujinimus, pagrįstus AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Savininkas| Paskelbta 2024-07-24 17:25:55 |
 Savininkas| Paskelbta 2024-12-03 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\ 区别



Nuorodų rinkiniai (tipo informacija ir metaduomenys, neįskaitant konkrečių įgyvendinimų!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Vykdymo laiko biblioteka (konkretus įgyvendinimas): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Savininkas| Paskelbta 2024-12-03 10:16:03 |
Etaloniniai mazgai ir dokumentai




 Savininkas| Paskelbta 2024-12-10 17:46:00 |
Tuo pačiu metu galite sugeneruoti simbolio failą (.pdb)
 Savininkas| Paskelbta 2024-12-10 17:49:22 |
Konfigūruokite atleidimo režimą
 Savininkas| Paskelbta 2025-06-30 13:40:49 |
Mažai šlako Paskelbta 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com