Подтвердить что ты не робот

Разве вы не относитесь к папке bin как к переходной ситуации?

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

То есть вы должны быть в состоянии удалить его, и в следующий раз, когда вы его перестроить, он будет воссоздан, и любые ссылки будут скопированы в него без каких-либо хлопот и не помещать ваши яйца в одну корзину. Или в этом случае не помещайте все необходимые DLL файлы прямо в папку bin. Имейте их в другом месте и просто ссылайтесь на них.

Я видел, как люди падали, когда они клали dll прямо в папку bin и ссылались на них там. Поэтому я стараюсь избегать этого и помещать все необходимые DLL файлы в папку под названием Refs и добавлять ссылки на DLL файлы там. Во время компиляции они все равно будут скопированы в папку bin.

Я сошел с ума? Это слишком осторожно? здравый смысл?

Какова наилучшая практика в этом сценарии?

Приветствия,

- Ли

ОБНОВЛЕНИЕ: Оказывается, я не сумасшедший

Приветствия парней, которых вы набрали в некоторых моментах, я забыл упомянуть.

В основном:

  • Не проверять папку bin в исходном элементе управления
4b9b3361

Ответ 1

Правильно, вы не хотите разместить ссылочные DLL в папке bin. Если вы используете управление версиями, всегда должны быть полностью исключены папки bin и obj.

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

Что-то, что, по моему мнению, большинство людей будет ожидать при проверке вашего источника.

Мы также включаем файл _READ_ME.txt в корень проекта, указав дополнительную информацию об инструментах и ​​материалах, необходимых для пакетного создания проекта (nant, perl и т.д.), поэтому могут быть некоторые время от времени, но никогда не удивляет такого рода.

Ответ 2

Нет, это имеет смысл и является практикой, которую я сам реализую в личных проектах. Все, что находится под папкой bin, должно рассматриваться как свойство среды msbuild/Visual Studio.

В то время как оба они очень заботятся о том, чтобы удалить только те из них, о которых они знают, возможно, что пользователь не может полностью понять, что такое вывод сборки и скопировать результат сборки, и, следовательно, удалить его во время операции "Чистый", Также возможно, чтобы другие инструменты были более агрессивными при очистке DLL. Я сам склоняюсь к тому, чтобы время от времени нажимать каталог bin, если я думаю, что процесс сборки ищет устаревшие данные.

Кроме того, наличие ссылки ref дает вам одно место для обновления ссылок на коллекцию проектов в рамках решения. Для меня это очень естественная конструкция.

Ответ 3

Я думаю, что папка bin является временной, это место для полного рабочего скомпилированного приложения.

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

Ответ 4

Я понятия не имею, сумасшедший ты, но мы следовали тем же самым практикам на последнем месте, где работали, и я перенес их на свою работу. Папки /bin и/obj находятся вне контроля версий, и я никогда не прикасаюсь к ним. В основном они не существуют, насколько я заинтересован во время разработки. Все включенные DLL файлы находятся в другой папке и ссылаются на них.