Экспортировать ссылочную DLL для использования в других проектах?C#

Место общения программистов C#
Ответить
Anonymous
 Экспортировать ссылочную DLL для использования в других проектах?

Сообщение Anonymous »

У нас есть пакет NuGet, полученный из другого решения, и репозиторий, на который мы ссылаемся в другом проекте.
В его нынешнем виде наш рабочий процесс заключается в разработке вещей и по мере их обнаружения. проблемы в том, что мы пройдем процесс внесения изменений, увеличения номера версии, создания PR, ожидания объединения ветки, ожидания, пока конвейеры CI/CD соберут и опубликуют пакет, а затем подождем еще немного для обновления репозитория пакетов.
Это довольно раздражает, процесс занимает около 30 минут, и я подумал, что было бы действительно удобно просто разрабатывать эти два продукта параллельно:
Я мог бы внести изменения в оба репозитория, а затем создать два отдельных PR, которые, как я знаю, подходят для использования и уменьшит количество крошечных 2–3-строчных PR, которые я отправляю своей команде на рассмотрение.Я немного повозился с этим в свободное время, потому что это интересная проблема, которую стоит попробовать решить, и вот что я на данный момент нашел. Я обнаружил, что могу сделать что-то вроде этого для достижения своей цели:

Код: Выделить всё





/path/to/local/package.dll









Это работает... за исключением того, что кажется, что когда проект знает о локальной версии пакета, о ней знает только этот проект.
Предположим, в потребительском решении у меня есть следующие проекты:

Код: Выделить всё

|--- My.Project.BusinessLogic
|--- My.Project.Api
|------ References My.Project.BusinessLogic
|--- My.Project.Functions
|----- References My.Project.BusinessLogic
В результате я могу нормально построить My.Project.BusinessLogic. Он работает так, как задумано, когда он знает или не знает о локальном проекте, однако *.Api и *.Functions выдают ошибки компилятора при попытке сослаться на локальный проект через My.Project.BusinessLogic< /code> потому что он по какой-то причине не знает о My.Package.
Я также могу заставить их построить, если добавлю это в каждый зависимый проект (и устраню необходимость наличия нескольких ссылок на пакеты в проектах, чтобы учитывать версии): Это не ужасно, это дает мне то, что мне в конечном итоге нужно, но я не могу не задаться вопросом, есть ли способ сообщить My.Project.BusinessLogic, что DLL необходимо экспортировать в другие проекты при сборке.
Кто-нибудь знает, возможно ли это?
Изменить:Через ChatGPT я нашел кое-что, что, похоже, помогло.
Я добавил этот оператор ниже в тег, а затем проверил, что все работает так, как я ожидал, и это кажется, делаю именно то, что хочу!

Код: Выделить всё



/path/to/local/package.dll



true



и в качестве бонуса я добавил дополнительную проверку к условию, чтобы включить это только в том случае, если у меня установлена ​​локальная переменная среды (поскольку я подозреваю, что это вызовет много путаницы у других разработчиков, если у них есть более старые версии dll, и они полагаются на пакет nuget): Я по-прежнему открыт для более эффективных решений, но думаю, что достиг именно того, чего хотел.

Подробнее здесь: https://stackoverflow.com/questions/791 ... se-as-well
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»