Скопируйте файлы (файлы) из одного проекта в другой, используя событие post build... VS2010
У меня есть решение с тремя проектами. Мне нужно скопировать представление из одного проекта в другой. Я могу скопировать созданную DLL через события пост-сборки так:
![enter image description here]()
Итак, я хочу скопировать файл в проекте один '/Views/ModuleHome/Index.cshtml' в папку в проекте 2.
Как скопировать файл в мой желаемый проект через событие после сборки? Благодаря
Ответы
Ответ 1
xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home"
и если вы хотите скопировать целые папки:
xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views"
Обновление: здесь рабочая версия
xcopy "$(ProjectDir)Views\ModuleAHome\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\ModuleAHome\" /Y /I
Вот некоторые обычно используемые переключатели с xcopy
:
/I - treat as a directory if copying multiple files
/Q - Do not display the files being copied.
/S - Copy subdirectories unless empty.
/E - Copy empty subdirectories.
/Y - Do not prompt for overwrite of existing files.
/R - Overwrite read only files.
Ответ 2
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt
Обратите внимание на кавычки в пути источника и пути назначения, но не на пути к tlud файлу exludelist.
Содержимое ExcludedFilesList.txt следующее:.cs\
Я использую эту команду для копирования файла из одного проекта в моем решении, в другой и исключения файлов .cs.
/D Copy only files that are modified in sourcepath
/y Suppresses prompting to confirm you want to overwrite an existing destination file.
/s Copies directories and subdirectories except empty ones.
/r Overwrites read-only files.
Ответ 3
xcopy "$ (TargetDir) * $(TargetExt)" "$ (SolutionDir)\Scripts\MigrationScripts\Library \" /F/R/Y/I
/F - отображает полное имя источника и целевого файла
/R - Это перезапишет файлы только для чтения
/Y - подавляет запрос на перезапись существующего файла (ов)
/I - Предполагается, что назначение - это каталог (но должен заканчиваться)
Маленький трюк - в цель вы должны закончиться символом \, чтобы сообщить xcopy, что цель - это каталог, а не файл!
Ответ 4
Вызвать Batch
файл, который будет запускать Xcopy
для источника необходимых файлов в пункт назначения
call "$(SolutionDir)scripts\copyifnewer.bat"
Ответ 5
Я использую его так.
xcopy "$(TargetDir)$(TargetName).dll" "$(SolutionDir)Lib\TIRM\x86\" /F /Y
xcopy "$(TargetDir)$(TargetName).lib" "$(SolutionDir)Lib\TIRM\x86\" /F /Y
/F : Copy source is File
/Y : Overwrite and don't ask me
Обратите внимание на использование этого.
$ (TargetDir) уже "\"
"D:\MyProject\bin \" = $(TargetDir)
Вы можете найти макрос в редакторе команд
![введите описание изображения здесь]()
Ответ 6
Как и предыдущие ответы, я также предлагаю xcopy
. Однако я хотел бы добавить к Hallgeir Engen ответ с параметром /exclude
. Кажется, что ошибка связана с параметром, препятствующим работе с именами путей, которые являются длинными или содержат пробелы, поскольку кавычки не будут работать. Имена путей должны находиться в формате "DOS" с "Documents", переводящим "DOCUME ~ 1" (согласно этот источник).
Итак, если вы хотите использовать параметр \exclude, существует обходное решение здесь:
cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path
Обратите внимание, что путь источника и назначения может (и должен, если они содержат пробелы) находиться внутри кавычек, но не путь к файлу исключений.
Ответ 7
Если вы хотите принять во внимание платформу (x64, x86 и т.д.) и конфигурация (отладка или выпуск), это будет примерно так:
xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y