Копирование файлов в папку приложения во время компиляции

Если у меня есть некоторые файлы, которые я хочу скопировать из моего проекта в папку .\bin\debug\ при компиляции, то мне кажется, что я должен помещать их в корень проекта. Помещение их в подпапку, похоже, копирует их в папку .\bin\debug\ в той же структуре, в которой они хранятся.

Есть ли способ избежать этого?

Просто, чтобы быть ясным: если у меня есть MyFirstConfigFile.txt и MySecondConfigFile.txt в папке ConfigFiles, и я установил их Копировать на вывод, который будет Копировать..., они появятся в папке .\bin\debug\ConfigFiles\. Я хочу, чтобы они отображались в папке .\bin\debug\.

Ответ 1

Вы можете сделать это с помощью события post build. Установите для файлов никаких действий при компиляции, затем в макрокоманде скопируйте файлы в нужный каталог.

Здесь макрос пост-сборки, который, как я думаю, будет работать, скопировав все файлы в каталоге Configuration в корневую папку:

copy $(ProjectDir)Configuration\* $(ProjectDir)$(OutDir)

Ответ 2

Вы можете использовать задачу MSBuild на вашем csproj, например.

Отредактируйте файл csproj

  <Target Name="AfterBuild">
    <Copy SourceFiles="$(OutputPath)yourfiles" DestinationFolder="$(YourVariable)" ContinueOnError="true" />
  </Target>

Ответ 3

Вы также можете поместить файлы или ссылки в корневой каталог разработчика, а затем установить свойства файлов:

Build action = Content

и

Copy to Output Directory = Copy if newer (например)

Для ссылки перетащите файл из проводника Windows в проводник решений, удерживая клавиши сдвига и управления.

введите описание изображения здесь

Ответ 4

Вы хотите использовать событие Post-Build в своем проекте. Здесь вы можете указать вывод, и для часто используемых вещей, таких как путь к проекту, имя элемента и т.д., Есть значения макросов.

Ответ 5

Я нашел этот вопрос для поиска "копировать файлы в папку приложения во время компиляции". OP, похоже, уже отсортирован, но если вы этого не сделаете:

В Visual Studio щелкните правой кнопкой мыши файл, выберите свойства, затем измените параметр "копировать на вывод" на "всегда". См. http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx

Ответ 6

Вы можете использовать событие PostBuild для проекта. После завершения сборки вы можете запустить пакетный файл DOS и скопировать нужные файлы в нужную папку.

Ответ 7

Сначала проверьте, существует ли папка. если нет то сделай.

if not exist "$(ProjectDir)$(OutDir)subfolder" mkdir "$(ProjectDir)$(OutDir)subfolder"
copy "$(ProjectDir)subfolder\"  "$(ProjectDir)$(OutDir)subfolder\"

Ответ 8

скопировать из подпапки в подпапку

 if not exist "$(ProjectDir)$(OutDir)subfolder" mkdir "$(ProjectDir)$(OutDir)subfolder"

 copy "$(ProjectDir)subfolder\"  "$(ProjectDir)$(OutDir)subfolder\"