3 개의 프로젝트가있는 솔루션이 있습니다. 한 프로젝트에서 다른 프로젝트로 뷰를 복사해야합니다. 포스트 빌드 이벤트를 통해 생성 된 DLL을 다음과 같이 복사 할 수 있습니다.
그래서 프로젝트 하나의 '/Views/ModuleHome/Index.cshtml'프로젝트의 파일을 프로젝트 2의 폴더에 복사하고 싶습니다. 빌드 후 이벤트를 통해 원하는 프로젝트에 파일을 어떻게 복사합니까? 감사
3 개의 프로젝트가있는 솔루션이 있습니다. 한 프로젝트에서 다른 프로젝트로 뷰를 복사해야합니다. 포스트 빌드 이벤트를 통해 생성 된 DLL을 다음과 같이 복사 할 수 있습니다.
그래서 프로젝트 하나의 '/Views/ModuleHome/Index.cshtml'프로젝트의 파일을 프로젝트 2의 폴더에 복사하고 싶습니다. 빌드 후 이벤트를 통해 원하는 프로젝트에 파일을 어떻게 복사합니까? 감사
답변:
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- 여러 파일을 복사하는 경우 디렉토리로 취급합니다.
- / Q- 복사중인 파일을 표시하지 않습니다.
- / S- 비어 있지 않으면 하위 디렉토리를 복사합니다.
- / E- 빈 하위 디렉토리를 복사합니다.
- / Y- 기존 파일을 덮어 쓸 것인지 묻지 않습니다.
- / R- 읽기 전용 파일을 덮어 씁니다.
Ctrl+W+O
. 합니까 Views\ModuleAHome
대상 위치에서 폴더의 존재를? 실행중인 정확한 명령에 대한 출력 창을보고 사용 가능한 다른 스위치를 이해하려면 xcopy 명령에 대한 설명서를 읽으십시오 xcopy /?
.
xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt
소스 경로 및 대상 경로에는 따옴표가 있지만 제외 목록 txt 파일의 경로에는 없습니다.
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.
your-source-path
및에 따옴표를 추가 한 후에 작동합니다 your-destination-path
. 이러한 인용 부호가 없으면 전혀 작동하지 않습니다.
"My File.txt"
.
xcopy "$ (TargetDir) * $ (TargetExt)" "$ (SolutionDir) \ Scripts \ MigrationScripts \ Library \"/ F / R / Y / I
/ F – 전체 소스 및 대상 파일 이름을 표시합니다
/ R – 읽기 전용 파일을 덮어 씁니다.
/ Y – 기존 파일을 덮어 쓰라는 메시지를 표시하지 않습니다.
/ I – 대상이 디렉토리라고 가정합니다 (그러나로 끝나야합니다)
약간의 트릭 – 대상에서 문자 \로 끝나야 xcopy에게 대상이 파일이 아니라 디렉토리라는 것을 xcopy에 알려야합니다!
나는 이것을 이렇게 사용합니다.
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)
명령 편집기에서 매크로를 찾을 수 있습니다
이전 답변과 마찬가지로을 제안하고 xcopy
있습니다. 그러나 Hallgeir Engen의 답변에 /exclude
매개 변수 를 추가하고 싶습니다 . 따옴표가 작동하지 않으므로 매개 변수에 길이가 길거나 공백이 포함 된 경로 이름으로 작업하지 못하게하는 버그가있는 것 같습니다. 경로 이름은 "문서"가 "DOCUME ~ 1"로 변환되는 "DOS"형식이어야합니다 ( 이 소스 에 따름 ).
따라서 \ exclude 매개 변수를 사용하려면 여기 에 해결 방법이 있습니다 .
cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path
소스 및 대상 경로는 따옴표 안에있을 수 있지만 제외 파일 경로는 될 수 없습니다 .