Лучший способ ссылаться на внешнюю библиотеку в нескольких проектах в решении Visual Studio - PullRequest
5 голосов
/ 15 мая 2009

У нас есть решение Visual Studio 2008 под управлением исходного кода VSS. Решение содержит много библиотек классов, многие из которых нуждаются в ссылке на сборку, которая не является частью решения. В настоящее время мы храним отдельные копии этой сборки в каждом проекте, но с ростом числа проектов копирование обновлений во внешнюю сборку становится все более утомительным. Есть ли лучший способ иметь единственную копию сборки в решении и в управлении исходным кодом, на которую можно ссылаться во всех проектах?

Ответы [ 3 ]

5 голосов
/ 15 мая 2009

Создайте папку «external library» / «lib» / «library» в корневой папке, добавьте ее в систему контроля версий и ссылки на библиотеки в проектах. С «Скопировать локальный» в справочных свойствах проект автоматически скопирует его в свою папку bin.

Структура нашего проекта:

workspace
  config
    partial app configs goes here
  lib
    external libraries goes here
  src
    Domain          
      domainProjects
    Infrastructure
      infrastructureProjects
        references 3rd party dll's from lib folder
    UI
    Tests        
  solutions
    primaryUIapplication
      references projects from "src" folder
    domainLogic
    etc.

В растворе это выглядит так:

_misc
  config
  tests
Domain
Infrastructure
UI    
1 голос
/ 15 мая 2009

У Арниса Л. есть ответ - но мне интересно, почему так много ваших проектов имеют такую ​​же зависимость? Если вы реструктурируете свои проекты так, чтобы только один из них имел эту зависимость, было бы легче управлять.

1 голос
/ 15 мая 2009

Вот вам VSS во всей его «славе» со всей «частью решения».

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...