Добавление ссылки Visual Studio на продукт под управлением источника - PullRequest
2 голосов
/ 10 июля 2009

В качестве примера я пытаюсь добавить ссылку на WatiN в Visual Studio 2008. Я загружаю WatiN, и у меня на рабочем столе есть папка, содержащая 5 файлов:

  • WatiN.Core.dll
  • WatiN.Core.xml
  • Interop.SHDocVw.dll
  • Microsoft.mshtml.dll
  • WatiN.Core.UnitTests.dll
  • WatiN.Core.UnitTests.dll.config

Я могу добавить свою ссылку на WatiN.Core.dll и начать кодирование в Visual Studio. Но у меня есть несколько вопросов:

  • Можно ли теперь удалить папку на рабочем столе? Были ли файлы скопированы в корзину проекта?
  • Что происходит, когда я проверяю свой проект в исходном коде, а другой разработчик проверяет его? Должен ли он / она иметь одну и ту же папку на рабочем столе.

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

  • Нужны ли мне все 6 из этих файлов?
  • Я считаю, что файлы .config имеют какое-то отношение к intellisense, но проект будет собираться и запускаться без них, верно?
  • Как мне узнать, какие файлы включать кроме WatiN.Core.dll. Проект создается и выполняется только с файлами WatiN.Core.dll и Interop.SHDocVw.dll. Откуда мне знать, что это за зависимости?

Любое понимание очень ценится.

Ответы [ 4 ]

4 голосов
/ 10 июля 2009

Добавление ссылки делает именно это. Он добавляет ссылку, поэтому, если ссылка на папку на рабочем столе, другие разработчики не смогут увидеть файлы. Кроме того, если вы удалите файлы, у вас будут свисающие ссылки в вашем проекте. Как правило, не ссылайтесь на файлы на рабочем столе.

Создание папки lib в том же дереве управления исходным кодом, что и в предложенном вами проекте, является гораздо лучшим решением. Visual Studio будет хранить ссылки как относительные пути, позволяющие другим разработчикам компилировать проект.

Вам необходимо изучить документацию для библиотеки WatiN, чтобы узнать, какие файлы требуются вашему приложению. Не следует удалять файл .config, так как он не связан с intellisense.

1 голос
/ 13 июля 2009

WATiN для работы нужны WATiN.Core.dll и Interop.SHDocVw.dll. Как предлагали другие, лучше всего иметь папку lib в дереве управления исходными кодами для внешних библиотек, чтобы каждый мог использовать относительные ссылки.

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

Файл Watin.Core.xml должен дать вам intellisense, если вы поместите его в корзину с помощью dll.

1 голос
/ 10 июля 2009

Я бы создал дерево разработки со всеми исходными файлами, библиотечными файлами, инструментами, документами, ресурсами, чтобы любой разработчик мог получить рабочий проект прямо из системы контроля версий без необходимости поиска ссылок.

Наличие ссылок на DLL в папке lib означает, что projectA может использовать версию 1.0 DLL, а projectB может использовать версию 2.0 библиотеки DLL.

Когда решение собирается, оно получает библиотеки DLL, из которых они ссылаются. Если он не может найти их, проект не будет построен.

Посмотрите следующие статьи.

http://www.codeplex.com/treesurgeon

Что касается того, на какие dll вам нужно ссылаться, вы можете пойти только путем ссылки на то, что вам нужно.

0 голосов
/ 10 июля 2009

Я полагаю, что вы можете удалить папку, только если вы ссылаетесь на файл непосредственно из папки bin (вырезайте и вставляйте ее туда). Если вы ссылаетесь на файл из папки, я полагаю, вам нужно сохранить его там.

Вы можете столкнуться с проблемами при удалении других файлов, если dll, на которую вы ссылаетесь, ссылается на классы в других dll.

...