У меня есть решение VS2008, которое содержит несколько библиотек классов плюс исполняемый проект (служба Windows).Одна из моих библиотек классов - это оболочка для стороннего компонента, которая обеспечивает большую конфигурацию, поэтому я создал специальный XML-документ с именем 3rdPartyConfig.xml
и строго типизированный класс синтаксического анализа с именем 3rdPartConfig.cs
.
Поскольку мой исполняемый проект ссылается на эту библиотеку классов, при запуске приложения оно будет искать файл XML в месте его выполнения.Для этого я установил следующие свойства на 3rdPartyConfig.xml
:
- set
Build Action = Content
. - set
Copy to output Directory = Copy always
Когда я запускаю в Настройка отладки Я вижу, что 3rdPartyConfig.xml
скопирован в выходную папку сборки.Приложение работает нормально и умеет читать файл.Однако, когда я публикую как Release , Visual Studio не не копирует файл XML, поэтому при запуске приложения он не может его найти.
Что можетЯ делаю, чтобы мой файл конфигурации был включен в выходные данные сборки выпуска?Нужно ли писать сценарий до или после сборки?
Предостережения:
- Я знаю, что обходной путь может заключаться в удалении файла XML и добавлении конфигурациив app.config.Меня попросили , а не сделать это таким образом (клиент хочет иметь возможность легко заменять файлы конфигурации).
- Другой обходной путь - сохранить информацию о конфигурации в базе данных.Клиент предпочел бы не делать этого либо.
- Я учел тот факт, что «выполнение местоположения» становится туманным при работе со службами Windows.Будьте уверены, мой код проверяет в установленном месте, не
c:\windows\system32
.
Спасибо!