Ссылки на NuGet и сборки
Подключение NuGet-пакетов через Properties и вручную через
Подключение внешних сборок
Движок скриптов полностью поддерживает подключение внешних сборок — как из файла, так и из NuGet.
Важно: подключение сборок доступно только внутри
Script.csx, который является аналогом вашегоProgram.csв «обычном» C#.
Через окно Properties
Начиная с новых версий EyeAuras, зависимости можно подключать не только вручную через #r, но и через отдельное окно Script Properties.
Сначала откройте свой скрипт и нажмите кнопку Properties.

После этого откроется окно Script Properties, где во вкладке NuGet можно:
- искать пакеты
- выбирать версию
- устанавливать пакет
- обновлять уже установленный пакет
- удалять ненужные пакеты

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