Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3803|Відповідь: 7

[Чайови] Використовуйте Roslyn для динамічної компіляції коду на C# і запуску

[Копіювати посилання]
Опубліковано 06.07.2024 16:59:03 | | | |
Вимоги: Проєкт повинен генерувати різні алгоритми та логіку відповідно до потреб клієнта, на даний момент код може бути не записаний мертвим, і для виконання налаштованої логіки може знадобитися якийсь рушій правил.

.NET Compiler Platform, кодова назва Roslyn, є набором відкритих API компіляторів і аналізу коду Microsoft для мов C# та Visual Basic (VB.NET).

Огляд:

Різниця між компілятором Roslyn MSBuild
https://www.itsvse.com/thread-9596-1-1.html

.NET/C# Платформа компілятора Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Спочатку створіть новий консольний додаток із наступним посиланням:

Код виглядає так:



Ми компілюємо код на C#, щоб отримати лише test.exe розмір файлу3KB。 Отриманий файл test.exe не може бути запущений як виконуваний файл Windows, і помилка повідомляється наступним чином:

Необроблене виключення: System.IO.FileNotFoundException: Не вдалося завантажити файл або асемблер "System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" або одну з його залежностей. Система не може знайти вказаний файл.
Отже, виконайте консольний додаток за допомогою таких команд:

Після виконання помилка повідомляється наступним чином:

Сталася фатальна помилка. Бібліотека 'hostpolicy.dll', необхідна для запуску додатку, не була знайдена у 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\'.
Не працював як автономний додаток.
  - Додаток запускався як автономний додаток, оскільки 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' не було знайдено.
  - Якщо це має бути залежний від фреймворку, додайте файл 'D:\Project\ConsoleApp1\ConsoleApp1\bin\Debug\net8.0\test.runtimeconfig.json' і вкажіть відповідний фреймворк.
Грубо кажучи, вам потрібен файл *.runtimeconfig.json, який містить інформацію про виконання та версію .NET Core, що використовується, посилання:Вхід за гіперпосиланням видно.

Отже, створіть новий test.runtimeconfig.json-файл з такою конфігурацією:

Повторіть команду і переконайтеся, що її можна виконати нормально, як показано на наступному рисунку:



Посилання:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.





Попередній:.NET/C# конвертує PDF у зображення на основі PDFtoImage
Наступний:ERP Kingdee Cloud Starry Sky (1) Просте розуміння
 Орендодавець| Опубліковано 06.07.2024 16:59:46 |
.NET/C# реалізує гарячі оновлення плагіна DLL на основі AssemblyLoadContext
https://www.itsvse.com/thread-10783-1-1.html
 Орендодавець| Опубліковано 24.07.2024 17:25:55 |
 Орендодавець| Опубліковано 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\ 区别



Еталонні асамблеї (інформація про типи та метадані, не враховуючи конкретних реалізацій!) ):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\



 Орендодавець| Опубліковано 03.12.2024 10:16:03 |
Еталонні збірки та документація




 Орендодавець| Опубліковано 10.12.2024 17:46:00 |
Водночас можна згенерувати файл символів (.pdb)
 Орендодавець| Опубліковано 10.12.2024 17:49:22 |
Налаштуйте режим випуску
 Орендодавець| Опубліковано 30.06.2025 13:40:49 |
Little slag Опубліковано 2024-7-24 17:25
https://github.com/roslynpad/roslynpad/releases

LINQPad:https://www.linqpad.net/
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com