Движок скриптов полностью поддерживает подключение внешних сборок — как из файла, так и из NuGet.
Важно: подключение сборок доступно только внутри
Script.csx, который является аналогом вашегоProgram.csв «обычном» C#.
Этот способ позволяет подключать любые пакеты из NuGet. EyeAuras скачает пакет и попытается подключить/загрузить все его части так же, как это обычно делают компиляторы в стандартных сценариях разработки.
#r "nuget: Coroutine, 2.1.5"
Log.Info("Hello, World!"); //you can use Coroutine classes in that script
Этот вариант позволяет подключать сборки из локальных файлов. Это может быть полезно, если нужная сборка по какой-то причине недоступна в NuGet.
#r "assemblyPath: D:\Work\EAExile\EAExileAgent.Shared.dll"
Log.Info("Hello, World!"); //you can use EAExileAgent classes in that script
Этот способ позволяет ссылаться на сборки, которые:
Assembly.Load или любым другим способом, но уже находятся в AssemblyLoadContext/AppDomainИсторически EyeAuras подключал ОЧЕНЬ много сборок по умолчанию — более 300. Это экономит пользователям время на предварительную настройку зависимостей для каждого C#-действия, BT-ноды и т. д., но в долгосрочной перспективе такой подход не является хорошим решением.
Постепенно всё больше сборок будет исключаться из списка подключаемых по умолчанию, а вместо этого появятся более удобные механизмы автодополнения, которые позволят легко подключать именно те библиотеки, которые нужны вашему скрипту. В будущем это упростит обновление программы для всех.
#r "assemblyName: Grpc.Net.Client"
Log.Info("Hello, World!"); //you can use Grpc.Net.Client classes in that script