Как я могу автоматически включить пользовательский файл конфигурации из моей библиотеки классов в мой исполняемый проект во время выпуска? - PullRequest
1 голос
/ 12 октября 2011

У меня есть решение 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.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 12 октября 2011

Просто отредактируйте свойство «Copy To Output Directory» в решении для вашего файла: enter image description here

0 голосов
/ 12 октября 2011

Не могли бы вы просто добавить файл конфигурации в качестве ссылки на исполняемый проект и настроить его для копирования в каталог релиза, если новее?

...