Как заставить компилятор Visual Studio игнорировать файл?

Кто-нибудь знает способ заставить визуальную студию полностью игнорировать файл при компиляции? У меня есть решение C# с файлом foo.config, который на самом деле не является стандартным файлом конфигурации — это просто текстовый файл. Во время компиляции VS захватывает файл и бомбит.

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

РЕДАКТИРОВАТЬ: обратите внимание, что BuildAction не исключает файлы из проверки их компилятором. Он просто решает, скомпилирован ли файл в сборку, является ли он содержимым (например, jpg или что-то в этом роде) или файлом ресурсов. Дополнительные сведения: см. на странице MSDN.

РЕДАКТИРОВАТЬ 2: по-видимому, если у вас есть текстовый файл с именем foo.config, и вы открыли его во время сборки, VS2005 выдаст ошибку, думая, что файл должен быть xml. Однако, если вы закроете файл, VS2005 проигнорирует его.

Решение. Проверка Visual Studio вызывает ошибки, если во время сборки открыт несовместимый файл. Пример того, как отключить это (для HTML), см. в Сообщение Скотта Гатри. Как упомянул Аллен, вы также должны установить действие «Сборка» на «Нет». К сожалению, это не остановит ошибки сборки, если у вас открыт файл.


person VanOrman    schedule 05.03.2009    source источник
comment
@edit2: правильно, именно так, как я объясняю в своем ответе :)   -  person Allen Rice    schedule 05.03.2009


Ответы (4)


щелкните правой кнопкой мыши > свойства

Действие сборки: установите «Нет»

Редактировать: если вы говорите о app.config, вы действительно не можете возиться с его форматом, вам нужно поместить его в другой файл .config.

Я только что дважды проверил, VS.net все равно, если это не app.config или web.config, а действие сборки файла конфигурации установлено на «Нет», это будет «ошибка», если у вас открыт файл, но он не будет привести к сбою сборки или предотвратить сборку сборок.

Закройте файл, и ошибки исчезнут, подобно ошибкам, возникающим при разметке HTML. Отображение этих «ошибок», вероятно, является настраиваемым параметром в vs.net.

person Allen Rice    schedule 05.03.2009
comment
В Visual Studio 2015: щелкните файл правой кнопкой мыши/Свойства/Исключить из встроенного/Да. - person Milad; 11.04.2018

Предпринимаемое действие зависит от решения и типа файла. Например (в VS2005), в решении C++ я могу щелкнуть правой кнопкой мыши имя исходного файла в обозревателе решений и просмотреть его свойства. Первая «Общая» опция «Исключено из сборки» позволит вам исключить файл из процесса сборки, не исключая его полностью из проекта.

Я открыл файл .config в решении C# и нашел параметр «Build Action» в разделе «Дополнительно». Это, вероятно, должно быть установлено на «Нет».

person zweiterlinde    schedule 05.03.2009
comment
Отличается ли это в VS2008? В 2005 году я не вижу ни раздела «Общие», ни параметра «Исключить из сборки». - person VanOrman; 05.03.2009
comment
Вероятно, это зависит от решения и типа файла. Я только что вытащил свойства файла конфигурации в решении C #, и похоже, что ответ Аллена может быть тем, что вы хотите. - person zweiterlinde; 05.03.2009

Просто щелкните правой кнопкой мыши файл и выберите «Исключить из проекта».

Если вы все еще хотите видеть его в своем проекте, выберите проект и нажмите кнопку «Показать все файлы» в верхней части обозревателя решений. Это покажет все файлы в дереве каталогов, даже если они на самом деле не являются частью проекта.

person Eric Petroelje    schedule 05.03.2009
comment
Однако он будет исключен из системы контроля версий кода. - person Crono; 02.03.2016
comment
@Crono - возможно, но все зависит от того, что вы используете для контроля версий. - person Eric Petroelje; 02.03.2016

Вы уверены, что VS компилирует файл .config???

Вы должны проверить действие сборки в параметрах файла и можете установить его на none.

person Alex Reitbort    schedule 05.03.2009