Требуется ли app.config в проектах .Net 4.0 C #?

К моему большому раздражению, Visual Studio 2010 добавил файлы App.config во все мои проекты .EXE, когда я изменил цель с .NET Framework 3.5 на .NET Framework 4.0. Так что моя автоматическая сборка сломалась, пока я не проверил эти новые файлы.

Есть ли какая-то особая причина, по которой я не могу просто удалить эти файлы App.config? Или Visual Studio продолжит добавлять их в мои проекты?

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

Разъяснение:

Я понимаю чтоapp.config для. Что я не понимаю, так это то, почему Visual Studio 2010 добавитapp.config файл в существующий проект, когда я изменяю проект на целевой .NET 4.0, а не .NET 3.5. Моему приложению не требуется ничего из app.config для запуска, поэтому мой единственный разумный вывод состоит в том, что либо Visual Studio по какой-то причине нуждается в app.config для компиляции, либо кто-то решил, что они знают лучше меня и мое приложение должно иметь app.config, хотя я не хочу его.

Ой ... Я побежал.

Дальнейшее уточнение:

Преобразование проекта из Visual Studio 2008 в Visual Studio 2010 не является проблемой. Когда я изменяю цель с .NET Framework 3.5 на .NET Framework 4.0, app.config добавляется в проект. App.config содержит это:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

Когда я изменяю его на целевой .NET Framework 3.5, файл app.config изменяется следующим образом:

<supportedRuntime version="v2.0.50727"/>

Я думаю, что вижу, что они пытаются сделать, но добавление этого файла app.config автоматически было действительно плохой идеей.

Ответы на вопрос(3)

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

Вы должны проверить, что в нем содержится, чтобы определить, есть ли в нем что-то необходимое.

 Reed Copsey30 сент. 2010 г., 19:50
К сожалению, инструмент преобразования просто добавляет это, независимо от того, необходимо это или нет.
 Jim Mischel30 сент. 2010 г., 19:43
Дело в том, что в моем проекте не было app.config, и он работал нормально. По неизвестным причинам VS 2010 добавил app.config, когда я преобразовал проект. Так что не было никаких настроек, которые нужно было менять.

РЕДАКТИРОВАТЬ

камыш указал на один случай, когда это не так, что стоит отметить

Существует одна ситуация, когда это требуется - если ваш проект ссылается на сборку CLR 2.0 в смешанном режиме, для запуска необходим файл app.config.

 Jim Mischel30 сент. 2010 г., 19:45
Любая идея, почему VS 2010 так услужливо добавляет один к преобразованному проекту?
 JaredPar30 сент. 2010 г., 20:13
@ Рид, интересно. Не знал этого. Буду обновлять мой ответ.
 Didier A.23 авг. 2013 г., 22:57
Есть ли способ, которым я могу вставить его в свой exe в этом случае? Мне не нравится наличие внешнего файла только для поддержки сборки в смешанном режиме
 Reed Copsey30 сент. 2010 г., 19:47
Существует одна ситуация, когда это требуется - если ваш проект ссылается на сборку CLR 2.0 в смешанном режиме, для запуска необходим файл app.config.
Решение Вопроса

требуется в .NET 4 проект, если вы ссылаетесь на CLR-2.0, сборка смешанного режима. В этом случае вам нужно добавить useLegacyV2RuntimeActivationPolicy = "true" в элемент запуска, иначе вы получите ошибки во время выполнения.

Однако средство преобразования VS не обнаруживает этого и по умолчанию добавляет файл app.config, который на самом деле не нужен. Если вы можете запустить после преобразования, это, вероятно, не проблема для вас.

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

 Jim Mischel30 сент. 2010 г., 19:51
Спасибо: «... и по умолчанию добавляет файл app.config, который на самом деле не нужен». Хмм.

Ваш ответ на вопрос