1

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

Как правильно добавить ссылку на внешнюю/стороннюю .NET-библиотеку (которая не является пакетом NuGet, а не в GAC) и заставить ее быть отправленной как часть решения (которое является под управлением версиями) в Visual Studio?Как ссылаться и отправлять внешнюю/стороннюю .NET DLL в решение под управлением версии в Visual Studio?

Длинная история

У меня есть решение Visual Studio 2013, который содержит несколько проектов .NET. Решение находится под контролем источника. Конечно, существует множество установленных пакетов NuGet, которые используются проектами. Но один из проектов должен ссылаться на внешнюю/стороннюю .NET DLL, которая недоступна в виде пакета NuGet и не находится в GAC. Если я просто добавлю ссылку на эту DLL в проекте, она будет работать нормально на данный момент. Но после того, как я зарегистрирую набор изменений с такой модификацией, любой, кто получит самую последнюю версию решения, столкнутся с проблемой со строительством, потому что на его машине нет упомянутой .NET DLL.

ответ

1

Я вижу два возможных решения вашей проблемы

  1. Вы можете добавить DLL на TFS. Создайте папку под вашим решением под названием lib, например, и разместите там свою DLL. Затем ссылайтесь на dll из этой папки. Когда вы проверяете изменения, включите папку lib в DLL. Как только кто-то получит последнюю информацию, они получат как ваши изменения, так и новую dll. Обратите внимание, что в DLL-файлах, указанных в папке решения, используется относительный путь, поэтому кому-либо, у кого есть эта папка и dll в папке решения, больше ничего не нужно делать

  2. Сделайте пакет nuget с этой DLL и хостом это на вашем собственном корме nuget. Вы можете получить фид и разместить его на iis на выделенной машине или использовать сетевой ресурс :). Nuget также работает с «источниками папок». Канал Nuget - это просто причудливый ui в хранилище папок. Это добавляет преимущество TAHT у вас не будет DLLs под контролем источника

Удачи

+0

Спасибо за оба варианта! Я рассмотрю первый за это время, но буду учитывать возможность второго варианта в будущем. Если я создаю папку в папке решения и копирую внешние библиотеки DLL, модуль управления версиями не обнаружит все эти действия в качестве ожидающего изменения для моего решения. Не могли бы вы объяснить более подробно, как я могу сделать исходный контроль для обнаружения создания папки «lib», содержащей необходимые внешние DLL-библиотеки .NET? – Deilan

+1

Необычная визуальная студия Unfortunateley не будет автоматически распознавать ожидающие изменения, но это легко сделать из SourceControl Expolorer. Перейдите в папку Project/Branch/Solution, щелкните ее правой кнопкой мыши и выберите «Добавить элементы в папку ...». Появится мастер, показывающий список доступных папок. Выберите папку Lib и нажмите Далее. Первоначально TFS будет игнорировать DLL, но вы можете найти их на вкладке Exceuded items. Нажмите на исключенную вкладку, включите их и нажмите «Закончить».Затем dll будет апарировать в ваших ожидающих изменениях и может быть проверена. – Andrei

0

Вы можете создать новую папку в проекте, где требуется dll, а затем ссылаться на DLL в проекте, а затем chekck-in dll. Когда другие пользователи получат последний проект/решение, они автоматически получат эту DLL, и они не будут иметь проблемы при построении.

0

Вы можете рассмотреть проверку, во внешней DLL в системе управления версиями, а также. Создайте папку «Внешние» в папке проекта и разместите там внешние DLL. Используйте этот путь для ссылки на внешнюю DLL. Это должно работать с другими разработчиками, а также при проверке у них будет DLL и правильный относительный путь в csproj.

Смежные вопросы