Как Вы упаковываете внешние библиотеки в своих проектах .NET?

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

6
задан Mogsdad 19 September 2015 в 13:39
поделиться

4 ответа

Я использую папку для каждого, который, кажется, конвенция.

  1. Это действительно имеет значение при копировании их?
  2. Что, если Вы хотите выключить тот? Скажем, Вы идете с новым картопостроителем O/R. Будет намного легче просто удалить папку NHibernate, чем выборочно удалить DLLs в Вашей папке Rhino-Tools.
  3. Возьмите это к, он - логический вывод, и у Вас не будет структуры папок в Вашей папке lib, так как все использует log4net :)
1
ответ дан 17 December 2019 в 02:34
поделиться

Добавьте дополнительные пути зондирования к своим app.config файлам для определения местоположения зависимости dlls. Таким образом, Ваш может сойти с рук наличие всего одной копии всего, что Вы хотите. Хотя существуют некоторые причуды к использованию этой функции (необходимо создать структуру папок определенным способом). Здесь ищите больше деталей о теге.

1
ответ дан 17 December 2019 в 02:34
поделиться

Я определенно рекомендую иметь папку третьего лица или поставщика в каждом из Ваших деревьев проекта. При нахождении этого раздражающим, чтобы иметь 32 копии пакета инструментов носорога, Вы можете иметь единственную копию его в Вашем репозитории кода и сделать внешние ссылки на него в Вашем дереве проекта.

Позволяет говорят, что Вы используете SVN, можно сделать репозиторий названным "третье лицо, освобождает", и в этом присвоили версию копиям освобождения. Вы затем делаете внешнее свойство на своем "третьем лице" - папка в Вашем дереве проекта, которое затем в свою очередь автоматически сделает, выезд из Вашего централизованного третьего лица освобождает. Таким образом, например, только необходимо обновить в одном месте, если безопасность или bugfix выходят, но каждый проект находится все еще в команде выбора, который третье лицо освобождает, и который версии использовать.

О deps внутренне в третьем лице освобождает, я не возражал бы против них. В первый раз Вы компилируете свой проект, и часть освобождения не копируется в Вашу папку мусорного ведра из-за неявных зависимостей, можно добавить внешний атрибут в папку мусорного ведра, которая затем автоматически проверит пропавших без вести, освобождает. Тем путем все еще только необходимо обновить третье лицо, освобождает в одном месте.

1
ответ дан 17 December 2019 в 02:34
поделиться

Это одна из проблем, которую мы пытаемся решить в проекте с открытым исходным кодом Refix на CodePlex .

Идея состоит в том, что Refix проанализирует все проекты в вашем решении и перед компиляцией проекта скопирует необходимые двоичные файлы из единого локального репозитория на вашем компьютере в папку в дереве решений и направит проекты на них. Таким образом, нет необходимости фиксировать двоичные файлы. Ваш локальный репозиторий Refix будет извлекать двоичные файлы с удаленного (мы настраиваем его на repo.refixcentral.com), и вы можете настроить промежуточный репозиторий для своей команды / отдела / компании, который может содержать любое дополнительное программное обеспечение, не хранимое централизованно. .

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

Итак, чтобы ответить на вопрос «как вы упаковываете внешние библиотеки в свои проекты .Net», мы полагаем, что вы этого не сделаете - вы просто включите шаг Refix в свой сценарий сборки, и пусть он позаботится об этом за вас. .

3
ответ дан 17 December 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: