Файл настроек консольного приложения не создается

У меня есть решение, которое имеет 3 проекта. Одно консольное приложение, а два других приложения Windows. Оба приложения Windows используют консольное приложение, поэтому я добавил ссылку на консольное приложение в оба проекта приложений Windows. Теперь, когда я создаю проекты Windows, консольное приложение копируется в выходной каталог, но проблема в том, что его файл конфигурации «consoleapp.exe.config» не копируется!

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

Как решить эту проблему?


person Hemant    schedule 20.06.2009    source источник


Ответы (3)


Попробуй это:

  1. Выберите consoleapp.exe.config в дереве решений.

  2. Выберите «Content» для параметра Build Action в таблице свойств.

  3. Выберите Копировать всегда для параметра Копировать в выходной каталог.

Надеюсь, это поможет вам :)

person TheVillageIdiot    schedule 20.06.2009
comment
В дереве решений нет файла consoleapp.exe.config. Проект содержит файл app.config, который при сборке проекта переименовывается в consoleapp.exe.config. Я попробовал ваши шаги с app.config, и он копирует его для вывода, но я хочу, чтобы он также был переименован в consoleapp.exe.config. - person Hemant; 20.06.2009

Быстро создав консольный проект в VS2008 и добавив «App.config», он имеет настройки:

Действие сборки: нет
Копировать в выходной каталог: не копировать
Пользовательский инструмент: ‹пусто>
Пространство имен пользовательского инструмента: ‹пусто >

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

Если вы хотите, чтобы консольное приложение запускалось вместе с приложениями Windows для отладки, лучшим подходом, чем ссылки на проект, будет установка решения для запуска нескольких приложений. Щелкните решение правой кнопкой мыши, выберите свойства и в узле "Начать проект" выберите несколько проектов. (И удалите ссылки на консольное приложение.)

person Richard    schedule 20.06.2009

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

Вы должны скопировать свой app.config из других проектов (или, по крайней мере, скопировать настройки, которые вы хотите изменить) в вызывающий проект, а затем, когда приложение скомпилируется, у вас будет [YourAppName].exe.config, который вы можете изменить.

Все это происходит потому, что домен приложения в C# может иметь только один файл app.config уровня сборки. Вот дополнительная информация о MSDN.

person Even Mien    schedule 18.12.2009