Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3803|Odpowiedź: 7

[Napiwki] Użyj Roslyn do dynamicznej kompilacji kodu C# i jego uruchomienia

[Skopiuj link]
Opublikowano 06.07.2024 16:59:03 | | | |
Wymagania: Projekt musi generować różne algorytmy i logikę zgodnie z potrzebami klienta; w tym momencie kod może nie być napisany martwy, a do wykonania dostosowanej logiki może być potrzebny jakiś silnik reguł.

.NET Compiler Platform, o kryptonimie Roslyn, to zestaw open-source API do analizy kompilatorów i analiz kodu Microsoftu dla języków C# i Visual Basic (VB.NET).

Recenzja:

Różnica między kompilatorem Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Platforma kompilatora Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Najpierw stwórz nową aplikację konsolową z następującym odniesieniem:

Kod jest następujący:



Kompilujemy kod C#, aby uzyskać tylko test.exe rozmiar pliku3KB。 Powstały plik test.exe nie może być uruchomiony jako plik wykonywalny Windows, a błąd jest zgłaszany następująco:

Nieobsługiwany wyjątek: System.IO.FileNotFoundException: Nie udało się załadować pliku lub asembla "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" lub jednej z jego zależności. System nie może znaleźć określonego pliku.
Zatem uruchom aplikację konsolową za pomocą następujących poleceń:

Po wykonaniu błąd jest raportowany następująco:

Napotkano śmiertelny błąd. Biblioteka 'hostpolicy.dll' potrzebna do uruchomienia aplikacji nie została znaleziona w 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Nie udało się uruchomić jako samodzielna aplikacja.
  - Aplikacja została uruchomiona jako samodzielna aplikacja, ponieważ 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' nie została znaleziona.
  - Jeśli to ma być aplikacja zależna od frameworka, dodaj plik 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' i określ odpowiedni framework.
Mówiąc ogólnie, potrzebujesz pliku *.runtimeconfig.json, który zawiera informacje o czasie wykonywania oraz wersję .NET Core, patrz:Logowanie do linku jest widoczne.

Zatem stwórz nowy plik test.runtimeconfig.json o następującej konfiguracji:

Ponownie uruchom polecenie i stwierdzam, że można je wykonać normalnie, jak pokazano na poniższym rysunku:



Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.





Poprzedni:.NET/C# konwertuje pliki PDF na obrazy oparte na PDFtoImage
Następny:ERP Kingdee Cloud Starry Sky (1) Proste zrozumienie
 Ziemianin| Opublikowano 06.07.2024 16:59:46 |
.NET/C# implementuje gorące aktualizacje wtyczek DLL oparte na AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Ziemianin| Opublikowano 24.07.2024 17:25:55 |
 Ziemianin| Opublikowano 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\ 区别



Zestawy referencyjne (informacje o typach i metadane, nie licząc konkretnych implementacji!) ):C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.11\ref\net8.0
Biblioteka wykonawcza (konkretna implementacja): C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.11\



 Ziemianin| Opublikowano 03.12.2024 10:16:03 |
Zestawy referencyjne i dokumentacja




 Ziemianin| Opublikowano 10.12.2024 17:46:00 |
Jednocześnie możesz wygenerować plik symbolu (.pdb)
 Ziemianin| Opublikowano 10.12.2024 17:49:22 |
Konfiguruj tryb wydania
 Ziemianin| Opublikowano 30.06.2025 13:40:49 |
Mała szmatka Opublikowano 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com