Kopiowanie plików z jednego projektu do drugiego za pomocą zdarzenia post build ... VS2010

Mam rozwiązanie z 3 projektami w nim. Muszę skopiować widok z jednego projektu do drugiego. Jestem w stanie skopiować utworzony DLL poprzez post build zdarzeń jak tak:

Tutaj wpisz opis obrazka

Więc chcę skopiować plik w project one ' / Views/ModuleHome / Index.cshtml " do folderu w projekcie 2. Jak skopiować plik(y) do wybranego projektu poprzez Zdarzenie post-build? Dzięki

Author: BoundForGlory, 2012-06-12

8 answers

xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home"

A jeśli chcesz skopiować całe foldery:

xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views"

Aktualizacja: oto wersja robocza

xcopy "$(ProjectDir)Views\ModuleAHome\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\ModuleAHome\" /Y /I

Oto kilka często używanych przełączników z xcopy:

  • /I - traktuj jako katalog, jeśli kopiujesz wiele plików.
  • /Q - nie wyświetla kopiowanych plików.
  • / S - kopiuje podkatalogi, chyba że są puste.
  • /E - kopiowanie pustych podkatalogów.
  • / Y - nie pytaj o nadpisanie istniejących plików.
  • /R - nadpisuje pliki tylko do odczytu.
 321
Author: Darin Dimitrov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-16 07:14:15
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt

Zwróć uwagę na cudzysłowy w ścieżce źródłowej i ścieżce docelowej, ale nie w ścieżce do pliku txt exludelist.

Zawartość ExcludedFilesList.txt jest następujący: .cs\

Używam tej komendy do kopiowania plików z jednego projektu w moim rozwiązaniu, do drugiego i wykluczania .pliki 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.
 21
Author: Hallgeir Engen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-14 07:43:07

Xcopy "$(TargetDir) * $(TargetExt) ""$(SolutionDir) \ Scripts\MigrationScripts\Library\ " / F /R /Y / I

/ F-wyświetla pełne nazwy plików źródłowych i docelowych

/ R-to nadpisze pliki tylko do odczytu

/ Y-wyłącza monit o nadpisanie istniejących plików

/ i-zakłada, że miejscem docelowym jest katalog (ale musi się on kończyć)

Mała sztuczka – w Targecie musisz zakończyć znakiem\, aby powiedzieć xcopy, że target jest katalogiem, a nie plikiem!

 14
Author: Namrata Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-20 07:18:12

Wywołaj Batch plik, który uruchomi Xcopy dla wymaganego źródła plików do miejsca docelowego

call "$(SolutionDir)scripts\copyifnewer.bat"
 8
Author: swapneel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-12 17:46:11

Używam go w ten sposób.

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

Zwróć uwagę na użycie tego. $(TargetDir) ma już '\' "D:\MyProject\bin\" = $(TargetDir)

Możesz znaleźć makro w edytorze poleceń

Tutaj wpisz opis obrazka

 8
Author: Super-Mantis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-03 21:20:47

To polecenie działa jak urok dla mnie:

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

Torekurencyjnie kopiuje każdy dll i exe Plik z MySolutionPath\libraries do bin\debug lub bin\release.

Więcej informacji można znaleźć w tutaj
 4
Author: Bizhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-21 15:11:57

Podobnie jak poprzednie odpowiedzi, sugeruję również xcopy. Chciałbym jednak dodać do odpowiedzi Hallgeir Engen z parametrem /exclude. Wydaje się, że wystąpił błąd z parametrem uniemożliwiający pracę z nazwami ścieżek, które są długie lub zawierają spacje, ponieważ cudzysłowy nie będą działać. Nazwy ścieżek muszą być w formacie " DOS " z "Documents" tłumaczącym się na "DOCUME~1" (według tego źródła).

Więc, jeśli chcesz użyć parametru \ exclude, istnieje obejście tutaj :

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

Zauważ, że ścieżki źródłowe i docelowe mogą (i powinny, jeśli zawierają spacje) znajdować się w cudzysłowach, ale Nie ścieżka do pliku exclude.

 3
Author: kim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-08 17:25:25

Jeśli chcesz wziąć pod uwagę platformę (x64, x86 itp.) i konfigurację (debugowanie lub Wydanie), to będzie to coś takiego:

xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y 
 1
Author: Flot2011,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-08 15:02:46