Член моей команды добавил ссылку на стороннюю DLL и выполнил регистрацию ... теперь я не могу собрать - PullRequest
3 голосов
/ 20 марта 2009

Член моей команды сделал ссылку на DLL на своем локальном диске (например, C:\mystuff\thirdparty.dll) и проверил в проекте ссылку. Я обновил свою локальную копию проекта, и теперь у меня битая ссылка: <The system cannot find the reference specified>. У меня на третьем компьютере файл Thirdparty.dll, но он не находится в том же каталоге, в котором он был у моей команды.

Должны ли мы проверять сам файл thirdparty.dll в системе контроля версий в нашем решении в подкаталоге, используя относительный путь? Когда другой разработчик получит проект, он отключит библиотеку DLL и будет работать автоматически , даже если разработчик не "заранее установил" библиотеку DLL?

Спасибо.

Ответы [ 3 ]

8 голосов
/ 20 марта 2009

Если вы создаете каталог «lib» или «сборки» в рамках решения или, по крайней мере, в проекте контроля версий, добавляете все сборки сторонних производителей и ссылаетесь на них там, это должно устранить многие проблемы, подобные вашей.

Как правило, вам не нужно использовать установщик сторонних разработчиков, но это будет зависеть от продукта.

2 голосов
/ 20 марта 2009

Смотрите ответ, который я только что дал на этот вопрос:

https://stackoverflow.com/questions/666597/tfs-c-vs2008-how-to-deal-with-external-assemblies/666623#666623

По сути, вам нужно добавить DLL в систему управления версиями и ссылаться на нее, используя ссылку на файл, чтобы относительный путь к файлу для DLL был одинаковым для всех разработчиков в вашей команде.

1 голос
/ 20 марта 2009

Исходя из моего опыта, лучший способ - установить относительный путь к указанной DLL в общем каталоге. Например, с учетом следующей структуры:

  • Большой проект
    • Проект 1
    • Проект 2
    • ...
    • Проект N
    • Bin

Все мои проекты компилируются в папку bin, и все проекты ссылаются на свои зависимости из папки bin. Любой человек может свернуть проект в ЛЮБОЕ местоположение и скомпилировать в первый раз.

...