Вы видите его как файл app.config во время разработки (в Visual Studio). При развертывании (как и в каталоге bin) файл app.config становится файлом binaryname.dll / exe.config (автоматически переименовывается в Visual Studio).
Что касается точной причины ... есть веская причина не использовать его как app.config ... например, если вы развернете несколько приложений в одном каталоге, вы сможете иметь только одно приложение. конфиг ... так что есть веская причина назвать это имя_бинарным именем.dll.config.
Таким образом, реальный вопрос заключается в следующем: почему он называется app.config, а не binaryname.dll.config?
Одна из причин, о которых я могу подумать, заключается в том, что вы всегда можете изменить имя двоичного вывода в опциях проекта (поэтому компилятор создает файл .exe с именем, отличным от имени вашего проекта), и файл конфигурации будет скопирован в соответствии с это имя двоичного выхода. Лучше иметь имя с именем app.config в решении, потому что вы всегда копируете одно и то же имя файла в какое-то имя файла назначения, без необходимости переименовывать этот файл в решении (что хорошо, особенно если этот файл находится под контролем исходного кода). Может быть и другая причина.