Ссылка на локальный csproj из скрипта C # - PullRequest
0 голосов
/ 27 декабря 2018

Я экспериментировал со скриптом C # (* .csx), чтобы выполнить некоторую обработку данных с результатами вызовов сервисов для некоторых внутренних API.Пока это было довольно гладко, но сейчас я пытаюсь вызвать некоторые методы из проекта C #, к которому у меня есть доступ.Проект C # не имеет опубликованного пакета nuget, что означает прямую ссылку на dll с помощью #r.Однако, чтобы получить доступ к необходимым функциям, я обнаружил, что мне также нужно добавить ссылки в начало моего скрипта для любых зависимостей этого проекта и любых пакетов nuget, которые использует зависимость.

#r "PATH_TO_SOLUTION\Project\bin\Debug\netstandard2.0\binary.dll"
#r "PATH_TO_SOLUTION\ProjectDependency\bin\Debug\netstandard2.0\dependent.dll"
#r "nuget: Some.Dependency, 11.0.2"
#r "nuget: Some.Other.Dependency, 10.0.2"
#r "nuget: Some.Third.Dependency, 9.0.2"
using Project;

I 'Я новичок в мире сценариев C # и не нашел ничего, что напрямую касалось этого вопроса, так что, надеюсь, я не задаю здесь ничего сверхъестественного.

Некоторые проекты зависят от довольно большого количества пакетов nuget, есть ли способ ссылаться на csproj из скрипта C #, который не требует явной ссылки на все зависимости для проекта?

Дайте мне знать, если я могу предоставить дополнительную информацию.

1 Ответ

0 голосов
/ 07 января 2019

Обратите внимание, Essential .NET - C # Scripting в Microsoft Docs:

вы можете взять весь список и сохранить его как файл CSX, затем «импортировать» или «inline »файл в окно C # REPL с помощью #load Spell.csx.Директива #load позволяет вам включать дополнительные файлы сценариев, как если бы все файлы #load были включены в один и тот же «проект» или «компиляцию». Помещение кода в отдельный файл сценария C # обеспечивает тип рефакторинга файла и, что более важно,возможность сохранения сценария C # во времени.

Возьмите все ссылки, сохраните их в виде файла CSX и сделайте снимок.

например:

//Load scripts
#load "Script.csx"  
using Project;
...