Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
KeBJIaP
145 / 142 / 32
Регистрация: 21.01.2012
Сообщений: 545
Завершенные тесты: 1
1

Как правильно подцеплять к проекту библиотеки?

11.08.2016, 12:48. Просмотров 578. Ответов 12
Метки нет (Все метки)

Проблема в следующем: в проекте есть внешняя библиотека, моя же.
В VS просто дал ссылку на нее, copylocal=true.
После этого версия библиотеки поменялась, я хочу заменить её на более свежую.
Приходится вручную сносить библиотеки из папки debug, потом удалять существующие ссылки, потом добавлять ссылки на новые библиотеки и билдить с ними. Если сделать не так, проект продолжает использовать старую версию из папки debug даже если я удаляю и заново создаю ссылки. А если ставить copylocal=false то вообще пишет что не может найти файл.
Как можно избежать таких процедур, например завести папку с либами и просто класть туда актуальную версию чтобы проект сам подхватывал изменения. И в чем проблема в случае с copylocal=false?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2016, 12:48
Ответы с готовыми решениями:

Как правильно подключить EmguCV к проекту?
Как правильно подключить EmguCV к проекту? ОС: Windows 7 x64 IDE: Visual...

Подключение С/С++ библиотеки к проекту на C#
Помогите новичку подключить С/С++ библиотеку к проекту на C# Проблема: -...

Подключение библиотеки dll (c++) к проекту на c#
Как подключить библиотеку dll написанную на c++ к проекту на c#? Добавлено...

К проекту подключать библиотеки, и в момент обращения проверять версию
Здравствуйте, коллеги! Надеюсь на Вашу помощь. Необходимо к проекту подключать...

Как подключить DotRas к проекту?
Как подключить DotRas к проекту? using DotRas; // не выходит.

12
insite2012
Модератор
Эксперт .NET
4858 / 3813 / 1094
Регистрация: 12.10.2013
Сообщений: 11,096
Записей в блоге: 2
11.08.2016, 15:32 2
Цитата Сообщение от KeBJIaP Посмотреть сообщение
Как можно избежать таких процедур
Как вариант, в проекте с dll изменить путь вывода. Чтобы dll при построении создавалась в папке основного проекта.
Либо вообще уйти от зависимостей, использовать интерфейсы и композицию, с их отдельной реализацией в dll и так же как и в варианте 1. Тогда и ссылки на dll не понадобятся.
1
KeBJIaP
145 / 142 / 32
Регистрация: 21.01.2012
Сообщений: 545
Завершенные тесты: 1
11.08.2016, 15:43  [ТС] 3
insite2012, ну классы из библиотек я и так оборачиваю адаптером, если это имеется ввиду. Чтобы по всему проекту не ссылаться на либы. Изменить путь вывода тоже не вариант.
Я вроде заставил работать, в какой-то момент по команде Rebuild проект стал собираться нормально, но меня немного напрягает необходимость следить за актуальностью. Понятно, в гитигнор занесены папки /bin проектов, но иногда на собранной версии приходится подменять либы.
И кроме того непонятно почему не дает собрать с флагом copylocal=false, может должны быть особые условия выполнены?
0
Rius
Эксперт .NET
5063 / 3298 / 807
Регистрация: 25.05.2015
Сообщений: 10,155
Записей в блоге: 11
Завершенные тесты: 4
11.08.2016, 16:05 4
KeBJIaP, приложение и библиотека находятся в одном решении или в разных?
1
KeBJIaP
145 / 142 / 32
Регистрация: 21.01.2012
Сообщений: 545
Завершенные тесты: 1
11.08.2016, 16:14  [ТС] 5
Rius, В разных. Я дорабатываю библиотеку и потом использую её в нескольких решениях
0
m0nax
1203 / 908 / 109
Регистрация: 12.01.2010
Сообщений: 1,891
Завершенные тесты: 3
11.08.2016, 17:56 6
можно сделать свой nuget пакет и поставить свой nuget сервер, потом как обычно пользоваться
2
Rius
Эксперт .NET
5063 / 3298 / 807
Регистрация: 25.05.2015
Сообщений: 10,155
Записей в блоге: 11
Завершенные тесты: 4
11.08.2016, 21:17 7
KeBJIaP, ещё можно попробовать git subtree прикрутить.
1
Storm23
Эксперт .NETАвтор FAQ
6479 / 3904 / 1437
Регистрация: 11.01.2015
Сообщений: 5,067
Записей в блоге: 32
11.08.2016, 21:56 8
Цитата Сообщение от KeBJIaP Посмотреть сообщение
В VS просто дал ссылку на нее, copylocal=true.
Вы куда dll добавляете? В сам проект или в References?
Если добавлять в References (ссылаясь на bin дллки, где этот проект компилится), то ссылка и версия dll всегда будет актуальная и каждый раз браться из bin стороннего проекта. И copylocal на это никак не влияет (хотя он и всегда должен быть true).
1
Rius
Эксперт .NET
5063 / 3298 / 807
Регистрация: 25.05.2015
Сообщений: 10,155
Записей в блоге: 11
Завершенные тесты: 4
11.08.2016, 22:01 9
Не, Copy Local лишь упрощает жизнь, до поры, до времени. Ему не обязательно быть true.
1
KeBJIaP
145 / 142 / 32
Регистрация: 21.01.2012
Сообщений: 545
Завершенные тесты: 1
12.08.2016, 12:11  [ТС] 10
Rius, Storm23, В корне проекта складываю актуальные версии dll в папку Libs. /bin в гитигноре. Если запуливаю из репозитория ветку и до запуска меняю библиотеки на последнюю версию то в bin собираются те версии которые я и хотел. Если же после того как проект сбилдился поменять библиотеку, останется старая сбилженная версия.
Но потом я понял что есть Rebuild...
m0nax, мне нужно чтобы в определенном коммите использовались определенные версии библиотек, это будет работать с таким способом?
0
Psilon
Master of Orion
Эксперт .NET
6008 / 4858 / 902
Регистрация: 10.07.2011
Сообщений: 14,460
Записей в блоге: 5
Завершенные тесты: 4
12.08.2016, 14:50 11
KeBJIaP, вам все верно сказали. сделайте nuget-пакет вашей библиотеки.

Цитата Сообщение от KeBJIaP Посмотреть сообщение
m0nax, мне нужно чтобы в определенном коммите использовались определенные версии библиотек, это будет работать с таким способом?
Естественно. Например я сейчас в проекте использую NLog 4.3.5, хотя последняя версия 4.3.7
1
Миниатюры
Как правильно подцеплять к проекту библиотеки?  
aquaMakc
472 / 385 / 68
Регистрация: 14.02.2014
Сообщений: 1,883
Завершенные тесты: 1
12.08.2016, 16:08 12
Цитата Сообщение от KeBJIaP Посмотреть сообщение
Приходится вручную сносить библиотеки из папки debug, потом удалять существующие ссылки, потом добавлять ссылки на новые библиотеки и билдить с ними.
метод для ленивых:
в проекте с библиотекой выполнять скрипт "после компиляции", который скомпилированную библиотеку копирует в каталог с программой (с заменой). Из минусов - абсолютная, прибитая гвоздями адресация.
1
KeBJIaP
145 / 142 / 32
Регистрация: 21.01.2012
Сообщений: 545
Завершенные тесты: 1
12.08.2016, 16:25  [ТС] 13
Psilon, Спасибо, попробую научиться
0
12.08.2016, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2016, 16:25

Как подключить .dll файл к проекту
Подскажите пожайлуста, как подключить библиотеку классов в виде .dll файла ?...

Как подключить к проекту библиотеку, написанную на C++
Здравствуйте! Есть замечательная библиотека математических функций...

Как привязать справку к проекту .net
Здравствуйте! Допустим у меня есть скомпилированный CHM. Теперь мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru