Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3803|Svar: 7

[Tips] Brug Roslyn til dynamisk at kompilere C#-kode og køre den

[Kopier link]
Opslået på 06/07/2024 16.59.03 | | | |
Krav: Projektet skal generere forskellige algoritmer og logikker i henhold til kundens behov, på nuværende tidspunkt kan koden ikke være skrevet død, og en regelmotor kan være nødvendig for at udføre den tilpassede logik.

.NET Compiler Platform, med kodenavnet Roslyn, er Microsofts sæt af open source-compiler- og kodeanalyse-API'er til C#- og Visual Basic (VB.NET)-sprogene.

Anmeldelse:

Forskellen mellem Roslyn MSBuild-compileren
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn compilerplatform
https://www.itsvse.com/thread-10740-1-1.html
Først skal du oprette en ny konsolapplikation med følgende reference:

Koden er som følger:



Vi kompilerer C#-koden for kun at producere en test.exe filstørrelse3KB。 Den resulterende fil test.exe ikke kan køres som en Windows-eksekverbar fil, og fejlen rapporteres som følger:

Ubehandlet undtagelse: System.IO.FileNotFoundException: Mislykkedes i at indlæse en fil eller assembly "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" eller en af dens afhængigheder. Systemet kan ikke finde den angivne fil.
Så udfør konsolapplikationen med følgende kommandoer:

Efter udførelsen rapporteres fejlen som følger:

Der blev begået en fatal fejl. Biblioteket 'hostpolicy.dll', der kræves for at køre applikationen, blev ikke fundet i 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Fejlede i at køre som en selvstændig app.
  - Applikationen blev kørt som en selvstændig app, fordi 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' ikke blev fundet.
  - Hvis dette skal være en framework-afhængig app, tilføj filen 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' og angiv det passende framework.
Groft sagt har du brug for en *.runtimeconfig.json-fil, som indeholder runtime-information og den anvendte version af .NET Core, reference:Hyperlink-login er synlig.

Så opret en ny test.runtimeconfig.json-fil med følgende konfiguration:

Kør kommandoen igen og find ud af, at den kan udføres normalt, som vist i følgende figur:



Henvisning:

Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.





Tidligere:.NET/C# konverterer PDF'er til billeder baseret på PDFtoImage
Næste:ERP Kingdee Cloud Starry Sky (1) Enkel forståelse
 Udlejer| Opslået på 06/07/2024 16.59.46 |
.NET/C# implementerer DLL-plugin-hotopdateringer baseret på AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Udlejer| Opslået på 24/07/2024 17.25.55 |
 Udlejer| Opslået på 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\ 区别



Reference-assemblies (typeinformation og metadata, eksklusive specifikke implementeringer!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Runtime-bibliotek (specifik implementering): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Udlejer| Opslået på 03/12/2024 10.16.03 |
Referencesamlinger og dokumentation




 Udlejer| Opslået på 10/12/2024 17.46.00 |
Samtidig kan du generere en symbolfil (.pdb)
 Udlejer| Opslået på 10/12/2024 17.49.22 |
Konfigurer udgivelsestilstand
 Udlejer| Opslået på 30/06/2025 13.40.49 |
Lille skælling Opslået den 24-7-2024 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com