Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3803|Svar: 7

[Tips] Använd Roslyn för att dynamiskt kompilera C#-kod och kör den

[Kopiera länk]
Publicerad på 2024-07-06 16:59:03 | | | |
Krav: Projektet behöver generera olika algoritmer och logik enligt kundens behov, vid denna tidpunkt kan koden inte vara dödskriven och någon regelmotor kan krävas för att köra den anpassade logiken.

.NET Compiler Platform, med kodnamnet Roslyn, är Microsofts uppsättning open source-kompilator- och kodanalys-API:er för språken C# och Visual Basic (VB.NET).

Recension:

Skillnaden mellan Roslyn MSBuild-kompilatorn
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Roslyn-kompilatorplattform
https://www.itsvse.com/thread-10740-1-1.html
Skapa först en ny konsolapplikation med följande referens:

Koden är följande:



Vi kompilerar C#-koden för att producera en test.exe filstorlek endast3KB。 Den resulterande filen test.exe kan inte köras som en Windows-exekverbar fil, och felet rapporteras enligt följande:

Ickehanterat undantag: System.IO.FileNotFoundException: Misslyckades med att ladda en fil eller assembler "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" eller någon av dess beroenden. Systemet kan inte hitta den angivna filen.
Kör alltså konsolapplikationen med följande kommandon:

Efter exekvering rapporteras felet enligt följande:

Ett ödesdigert fel inträffade. Biblioteket 'hostpolicy.dll' som krävdes för att köra applikationen hittades inte i 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Misslyckades med att köras som en självständig app.
  - Applikationen kördes som en självständig app eftersom 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' inte hittades.
  - Om detta ska vara en ramverksberoende app, lägg till filen 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' och ange rätt ramverk.
Grovt sett behöver du en *.runtimeconfig.json-fil, som innehåller runtime-information och den version av .NET Core som används, referens:Inloggningen med hyperlänken är synlig.

Skapa därför en ny test.runtimeconfig.json-fil med följande konfiguration:

Kör om kommandot och se att det kan utföras normalt, som visas i följande figur:



Hänvisning:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.





Föregående:.NET/C# konverterar PDF:er till bilder baserade på PDFtoImage
Nästa:ERP Kingdee Cloud Starry Sky (1) Enkel förståelse
 Hyresvärd| Publicerad på 2024-07-06 16:59:46 |
.NET/C# implementerar DLL-plugin-heta uppdateringar baserat på AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Hyresvärd| Publicerad på 2024-07-24 17:25:55 |
 Hyresvärd| Publicerad på 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\ 区别



Referensassembléer (typinformation och metadata, exklusive specifika implementationer!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Runtime-bibliotek (specifik implementation): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Hyresvärd| Publicerad på 2024-12-03 10:16:03 |
Referenssammansättningar och dokumentation




 Hyresvärd| Publicerad på 2024-12-10 17:46:00 |
Samtidigt kan du generera en symbolfil (.pdb)
 Hyresvärd| Publicerad på 2024-12-10 17:49:22 |
Konfigurera releaseläge
 Hyresvärd| Publicerad på 2025-06-30 13:40:49 |
Lilla slampa Publicerad den 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com