Копирование файлов в папку приложения во время компиляции
Если у меня есть некоторые файлы, которые я хочу скопировать из моего проекта в папку .\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\"