2012-02-04 1 views
1

Я хочу установить свойство «Копировать в выходной каталог» на основе конфигурации сборки. Я еще не тестировал, но думаю, что Condition=" '$(Configuration)' == 'Release'" должен работать нормально. Однако есть проблема: у меня есть много файлов содержимого в моем проекте, я добавлю гораздо больше, и я не хочу вручную изменять свойства каждого файла. Я мог бы написать инструмент, который изменяет все записи контента, но может быть, есть другой способ?Способы установки «Копировать в каталог вывода» на основе конфигурации

EDIT: на момент написания этого сообщения я хотел более простой способ, но теперь я думаю, что любой другой способ будет хорошо рассмотреть, поэтому любые предложения приветствуются.

+1

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

+0

У меня есть проект, который сильно зависит от его содержимого (контент включает изображения, файлы конфигурации и некоторые скрипты python). Я написал инструмент упаковки содержимого, который я хочу выполнить после сборки в конфигурации Release, а в Debug я хочу получить доступ к контенту, как он есть, поэтому я могу динамически изменять файлы config/script для целей тестирования. Есть две оболочки IO - файловая система IO и упакованный контент IO, код загрузки контента использует оболочку через интерфейс, оболочка создается в одном месте, поэтому я могу просто заключить одну строку в '#if DEBUG #else # endif' или так. –

+0

Если вы или кто-либо еще может предложить более подходящий способ сохранить содержимое, распакованное в Debug и упакованное в Release, мне интересно. –

ответ

0

Решил взять легкий маршрут и копировать содержимое с помощью хсору на пост-сборки и установки всех «скопировать в каталог вывода» свойства «не копировать»:

mkdir $(TargetDir)\Content 
if $(ConfigurationName) == Debug goto :debug 
:release 
$(ProjectDir)\Tools\PackTool.exe $(ProjectDir)Content\ $(TargetDir)Content\Content.dat 
goto :exit 
:debug 
xcopy $(ProjectDir)\Content $(TargetDir)\Content /q /s /e /y 
:exit 
Смежные вопросы