Ваша просьба неосуществима. Как обычно, библиотека не использует внутренний ресурс другой библиотеки, но использует API библиотеки, и ресурсы доступны через имя пакета, если ваш недостаток изменился, не забывайте менять каждую ссылку из другой библиотеки. Не используйте дефектный путь по другим ссылкам.
Я использую папку для каждого, который, кажется, конвенция.
Добавьте дополнительные пути зондирования к своим app.config файлам для определения местоположения зависимости dlls. Таким образом, Ваш может сойти с рук наличие всего одной копии всего, что Вы хотите. Хотя существуют некоторые причуды к использованию этой функции (необходимо создать структуру папок определенным способом). Здесь ищите больше деталей о теге.
Я определенно рекомендую иметь папку третьего лица или поставщика в каждом из Ваших деревьев проекта. При нахождении этого раздражающим, чтобы иметь 32 копии пакета инструментов носорога, Вы можете иметь единственную копию его в Вашем репозитории кода и сделать внешние ссылки на него в Вашем дереве проекта.
Позволяет говорят, что Вы используете SVN, можно сделать репозиторий названным "третье лицо, освобождает", и в этом присвоили версию копиям освобождения. Вы затем делаете внешнее свойство на своем "третьем лице" - папка в Вашем дереве проекта, которое затем в свою очередь автоматически сделает, выезд из Вашего централизованного третьего лица освобождает. Таким образом, например, только необходимо обновить в одном месте, если безопасность или bugfix выходят, но каждый проект находится все еще в команде выбора, который третье лицо освобождает, и который версии использовать.
О deps внутренне в третьем лице освобождает, я не возражал бы против них. В первый раз Вы компилируете свой проект, и часть освобождения не копируется в Вашу папку мусорного ведра из-за неявных зависимостей, можно добавить внешний атрибут в папку мусорного ведра, которая затем автоматически проверит пропавших без вести, освобождает. Тем путем все еще только необходимо обновить третье лицо, освобождает в одном месте.
Это одна из проблем, которую мы пытаемся решить в проекте с открытым исходным кодом Refix на CodePlex .
Идея состоит в том, что Refix проанализирует все проекты в вашем решении и перед компиляцией проекта скопирует необходимые двоичные файлы из единого локального репозитория на вашем компьютере в папку в дереве решений и направит проекты на них. Таким образом, нет необходимости фиксировать двоичные файлы. Ваш локальный репозиторий Refix будет извлекать двоичные файлы с удаленного (мы настраиваем его на repo.refixcentral.com), и вы можете настроить промежуточный репозиторий для своей команды / отдела / компании, который может содержать любое дополнительное программное обеспечение, не хранимое централизованно. .
Он также будет пытаться разрешить конфликтующие номера версий - Visual Studio может тоже прощать несоответствующие номера версий компонентов, что приводит к решениям, которые компилируются, но перестают работать во время выполнения, когда им не удается загрузить зависимость, потому что потребуются две разные версии.
Итак, чтобы ответить на вопрос «как вы упаковываете внешние библиотеки в свои проекты .Net», мы полагаем, что вы этого не сделаете - вы просто включите шаг Refix в свой сценарий сборки, и пусть он позаботится об этом за вас. .