Для чего используются папки obj и bin (созданные Visual Studio)?



Я создал новый проект в Visual Studio 2010 и заметил, что теперь есть две новые папки с именем obj и bin в моем каталоге проекта.



аналогичная пара папок создается при построении и отладке-для чего нужны эти папки?

788   4  

4 ответов:

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

The держит двоичные файлы, которые являются фактическим исполняемым кодом для вашего приложения или библиотека.

каждая из этих папок далее подразделяется на Debug и Release папки, которые просто соответствуют конфигурации сборки проекта. Два типа файлов, описанных выше, помещаются в соответствующую папку в зависимости от типа выполняемой сборки. Это позволяет легко определить, какие исполняемые файлы создаются с отладочными символами, а какие были созданы с включенной оптимизацией и готовы к выпуску.

обратите внимание, что вы можете измените место, где Visual Studio выводит исполняемые файлы во время компиляции в свойствах проекта. Можно также изменить имена и выбранные параметры для конфигураций сборки.

The obj каталог предназначен для промежуточных объектных файлов и других переходных файлов данных, которые генерируются компилятором или системой сборки во время сборки. Элемент bin каталог-это каталог, в который будут записаны конечные выходные двоичные файлы (и любые зависимости или другие развертываемые файлы).

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

Я бы рекомендовал вам посмотреть это видео на youtube, которое демонстрирует разницу между папки c# bin и obj а также объясняет, как мы получаем выгоду от инкрементной / условной компиляции.

компиляция C# представляет собой двухэтапный процесс, см. диаграмму ниже для получения более подробной информации : -

  1. компиляция: - на этапе компиляции отдельные файлы кода C# компилируются в отдельные скомпилированные единицы. Эти отдельные скомпилированные файлы кода идут в OBJ справочник.
  2. связывание : - в фазе связывания эти отдельные скомпилированные файлы кода связаны для создания одной единицы DLL и EXE. Это идет в каталог BIN.

C# bin vs obj folders

Если вы сравните каталог bin и obj, вы найдете больше файлов в каталоге "obj", поскольку он имеет отдельные скомпилированные файлы кода, а "bin" имеет один блок.

bin vs obj

один интересный факт о каталоге obj: если вы настроили публикацию в веб-проекте, файлы, которые будут опубликованы, будут размещены в obj\Release\Package\PackageTmp. Если вы хотите опубликовать файлы самостоятельно, а не использовать интегрированную функцию VS, вы можете захватить файлы, которые вам действительно нужно развернуть здесь, а не выбирать все цифровые обломки в каталоге bin.

Comments

    Ничего не найдено.