Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3803|Répondre: 7

[Pourboires] Utilisez Roslyn pour compiler dynamiquement du code C# et l’exécuter

[Copié le lien]
Publié sur 06/07/2024 16:59:03 | | | |
Exigences : Le projet doit générer différents algorithmes et logiques selon les besoins du client ; à ce stade, le code peut ne pas être écrit mort, et un moteur de règles peut être nécessaire pour exécuter la logique personnalisée.

La plateforme compilatrice .NET, nom de code Roslyn, est l’ensemble d’API open source de compilateur et d’analyse de code de Microsoft pour les langages C# et Visual Basic (VB.NET).

Révision:

La différence entre le compilateur Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Plateforme de compilation Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Tout d’abord, créez une nouvelle application console avec la référence suivante :

Le code est le suivant :



Nous compilons le code C# pour produire une taille de fichier test.exe uniquement3 Ko。 Le fichier résultant test.exe ne peut pas être exécuté sous Windows, et l’erreur est rapportée comme suit :

Exception non gérée : System.IO.FileNotFoundException : Échec de charger un fichier ou un assembleur « System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e » ou l’une de ses dépendances. Le système ne trouve pas le fichier spécifié.
Donc, exécutez l’application console avec les commandes suivantes :

Après exécution, l’erreur est rapportée comme suit :

Une erreur fatale a été rencontrée. La bibliothèque « hostpolicy.dll » requise pour exécuter l’application n’était pas trouvée dans « D :\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\ ».
Échec à fonctionner en application autonome.
  - L’application a été exécutée en tant qu’application autonome car 'D :\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' n’a pas été trouvé.
  - Si cela dépend du framework, ajoutez le fichier 'D :\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' et spécifiez le framework approprié.
En gros, vous avez besoin d’un fichier *.runtimeconfig.json, qui contient les informations d’exécution et la version de .NET Core utilisée, référence :La connexion hyperlientérée est visible.

Alors, créez un nouveau fichier test.runtimeconfig.json avec la configuration suivante :

Relancez la commande et constatez qu’elle peut être exécutée normalement, comme montré sur la figure suivante :



Référence:

La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.





Précédent:.NET/C# convertit les PDF en images basées sur PDFtoImage
Prochain:ERP Kingdee Cloud Starry Sky (1) Compréhension simple
 Propriétaire| Publié sur 06/07/2024 16:59:46 |
.NET/C# implémente des mises à jour chaudes des plugins DLL basées sur AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Propriétaire| Publié sur 24/07/2024 17:25:55 |
 Propriétaire| Publié sur 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\ 区别



Assemblages de référence (informations de type et métadonnées, sans inclure les implémentations spécifiques !) ) :C :\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Bibliothèque d’exécution (implémentation spécifique) : C :\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Propriétaire| Publié sur 03/12/2024 10:16:03 |
Assemblages de référence et documentation




 Propriétaire| Publié sur 10/12/2024 17:46:00 |
En même temps, vous pouvez générer un fichier symbole (.pdb)
 Propriétaire| Publié sur 10/12/2024 17:49:22 |
Configurer le mode de libération
 Propriétaire| Publié sur 30/06/2025 13:40:49 |
Petite slag Publié le 24-07-2024 à 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad :https://www.linqpad.net/
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com