Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3803|Risposta: 7

[Consigli] Usa Roslyn per compilare dinamicamente codice C# ed eseguirlo

[Copiato link]
Pubblicato su 06/07/2024 16:59:03 | | | |
Requisiti: Il progetto deve generare algoritmi e logiche differenti in base alle esigenze del cliente; al momento, il codice potrebbe non essere scritto morto e potrebbe essere necessario un motore di regole per eseguire la logica personalizzata.

La .NET Compiler Platform, nome in codice Roslyn, è il set di API open source per compilatori e analisi del codice di Microsoft per i linguaggi C# e Visual Basic (VB.NET).

Recensione:

La differenza tra il compilatore Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

Piattaforma compilatrice .NET/C# Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Per prima cosa, crea una nuova applicazione console con il seguente riferimento:

Il codice è il seguente:



Compiliamo il codice C# per produrre una dimensione di file test.exe3KB。 Il file risultante test.exe non può essere eseguito come eseguibile Windows e l'errore viene riportato come segue:

Unhandled Exception: System.IO.FileNotFoundException: Non è riuscito a caricare un file o assembly "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" o una delle sue dipendenze. Il sistema non riesce a trovare il file specificato.
Quindi, esegui l'applicazione console con i seguenti comandi:

Dopo l'esecuzione, l'errore viene riportato come segue:

È stato riscontrato un errore fatale. La libreria 'hostpolicy.dll' necessaria per eseguire l'applicazione non si trovava in 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Non è riuscito a funzionare come app autonoma.
  - L'applicazione è stata eseguita come app autonoma perché 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' non è stato trovato.
  - Se dovesse essere un'app dipendente dal framework, aggiungere il file 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' e specificare il framework appropriato.
In termini generali, serve un file *.runtimeconfig.json, che contiene informazioni di runtime e la versione di .NET Core utilizzata, riferimento:Il login del link ipertestuale è visibile.

Quindi, crea un nuovo file test.runtimeconfig.json con la seguente configurazione:

Riesegui il comando e scopri che può essere eseguito normalmente, come mostrato nella figura seguente:



Riferimento:

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.





Precedente:.NET/C# converte i PDF in immagini basate su PDFtoImage
Prossimo:ERP Kingdee Cloud Starry Sky (1) Comprensione semplice
 Padrone di casa| Pubblicato su 06/07/2024 16:59:46 |
.NET/C# implementa aggiornamenti caldi dei plugin DLL basati su AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Padrone di casa| Pubblicato su 24/07/2024 17:25:55 |
 Padrone di casa| Pubblicato su 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\ 区别



Assembly di riferimento (informazioni di tipo e metadati, esclusi implementazioni specifiche!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Libreria runtime (implementazione specifica): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Padrone di casa| Pubblicato su 03/12/2024 10:16:03 |
Assemblaggi di riferimento e documentazione




 Padrone di casa| Pubblicato su 10/12/2024 17:46:00 |
Allo stesso tempo, puoi generare un file di simboli (.pdb)
 Padrone di casa| Pubblicato su 10/12/2024 17:49:22 |
Configura la modalità di rilascio
 Padrone di casa| Pubblicato su 30/06/2025 13:40:49 |
Little slag Pubblicato il 24-7-2024 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com