Скопируйте файл (ы) из одного проекта в другой, используя событие после сборки… VS2010

У меня есть решение с 3 проектами. Мне нужно скопировать вид из одного проекта в другой. Я могу скопировать созданную DLL с помощью событий после сборки, например:

enter image description here

Поэтому я хочу скопировать файл в один проект /Views/ModuleHome/Index.cshtml' в папку в проекте 2. Как мне скопировать файл (ы) в желаемый проект через событие после сборки? Спасибо

Ответы на вопрос(8)

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) уже имеет & apos; \ '; & Quot; D: \ MyProject \ Bin \ & Quot; = $ (TargetDir)

Вы можете найти макрос в редакторе команд

enter image description here

 29 мая 2018 г., 18:14
Это сработало для меня!
 31 мая 2018 г., 06:20
Где я должен написать эту команду?
 10 сент. 2018 г., 09:30
@HarshilDoshi Project & # x2192; Свойство проекта & # x2192; События сборки & # x2192; PostBuildEvent
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt

но не в пути к текстовому файлу 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.
 20 мая 2013 г., 08:35
Спасибо. Параметр / exclude: работает после добавления кавычекyour-source-path а такжеyour-destination-path, Без этих кавычек это не работает вообще.
Решение Вопроса
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.
 12 июн. 2012 г., 19:56
Я не думаю, что тот факт, что папка назначения не является частью проекта назначения, не имеет никакого значения для xcopy. Эта команда работает напрямую с файловой системой. Что касается появления этой папки как части целевого проекта, автоматизация этой задачи может быть более сложной.
 BoundForGlory12 июн. 2012 г., 20:02
Понятно ... xcopy & quot; $ (ProjectDir) Views \ ModuleAHome \ Index.cshtml & quot; & Quot; $ (SolutionDir) MEFMVCPOC \ Views \ ModuleAHome \ & Quot; / Y /I. Эта статья помогла вместе с вашим вкладомsocial.msdn.microsoft.com/Forums/uk/csharpgeneral/thread/…
 12 июн. 2012 г., 19:51
Посмотрите на окно вывода:Ctrl+W+O, ЛиViews\ModuleAHome папка существует в целевом местоположении? Посмотрите в окне вывода точную выполняемую команду, а затем прочитайте документацию для команды xcopy, чтобы понять различные доступные переключатели:xcopy /?.
 BoundForGlory12 июн. 2012 г., 19:55
Папка «Views \ ModuleAHome» существует, но не является частью целевого проекта, что означает, что вы должны нажать «показать все файлы»; чтобы он появился в VS.
 BoundForGlory12 июн. 2012 г., 19:50
Я добавил эту строку в свой пост пост, и я получаю эту ошибку «Ошибка 1» Команда «xcopy» C: \ Users \ tcompton \ Downloads \ MEFMVCPOC \ ModuleA \ Views \ ModuleAHome \ Index.cshtml & quot; & Quot; C: \ Users \ tcompton \ Downloads \ MEFMVCPOC \ MEFMVCPOC \ Views \ ModuleAHome & Quot; & Quot; выход с кодом 2. & quot; Что это значит?

for /r "$(SolutionDir)libraries" %%f in (*.dll, *.exe) do @xcopy "%%f" "$(TargetDir)"

Этоrecursively копирует каждыйdll а такжеexe файл изMySolutionPath\libraries вbin\debug или жеbin\release.

Вы можете найти больше информации вВот

ВызовBatch файл, который будет работатьXcopy для необходимых файлов источника к месту назначения

call "$(SolutionDir)scripts\copyifnewer.bat"

xcopy, Однако я хотел бы добавить к ответу Холлгейра Энгена/exclude параметр. Кажется, есть ошибка с параметром, препятствующим его работе с длинными путями или с пробелами, так как кавычки не будут работать. Имена путей должны быть в формате «DOS» с «Документами»; перевод на "DOCUME ~ 1"; (в соответствии сэтот источник).

Итак, если вы хотите использовать параметр \ exclude, есть обходной путьВот:

cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path

Обратите внимание, что пути источника и назначения могут (и должны, если они содержат пробелы) заключаться в кавычки, ноnot путь к файлу исключения.

$ (TargetDir) * $ (TargetExt) & quot; & Quot; $ (SolutionDir) \ Сценарии \ MigrationScripts \ Library \ & Quot; / F / R / Y / I

/ F & # x2013; Отображает полный источник & amp; имена целевых файлов

/ R & # x2013; Это перезапишет файлы только для чтения

/ Y & # x2013; Подавляет запрос на перезапись существующих файлов

/ I & # x2013; Предполагается, что местом назначения является каталог (но должен заканчиваться на)

Маленькая хитрость & # x2013; в target вы должны заканчиваться символом \, чтобы сообщить xcopy, что target является каталогом, а не файлом!

platform (x64, x86 и т. д.) иconfiguration (Debug или Release) это будет примерно так:

xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y 

Ваш ответ на вопрос