Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Visual Studio - Build Events에 robocopy를 사용할때 "Invalid Parameter #1" 오류가 발행하는 경우

이상하군요, 단순하게 다음과 같이 빌드 이벤트를 만들었는데,

$(ProjectDir)postBuildScript.bat "$(TargetDir)" $(TargetName)

REM postBuildScript.bat
robocopy %1 d:\temp %2.*

exit 0

빌드 시 오류가 발생합니다.

Error Invalid Parameter #1 : "E:\ConsoleApp1\bin\Debug" d:\temp ConsoleApp1.*"

원인은 지난 글에 쓴 것과 같은 이유인데,

robocopy - ERROR : No Destination Directory Specified.
; https://www.sysnet.pe.kr/2/0/12441

TargetDir이 넘겨주는 값이 "E:\ConsoleApp1\bin\Debug\"와 같이 마지막에 '\' 글자를 포함하고 있기 때문입니다. 하지만 오류 메시지의 출력 결과가 이번에는 다릅니다.

Rebuild started...
1>------ Rebuild All started: Project: ConsoleApp1, Configuration: Debug Any CPU ------
1>  ConsoleApp1 -> E:\ConsoleApp1\bin\Debug\ConsoleApp1.dll
1>  AnyCPU "E:\ConsoleApp1\bin\Debug\" ConsoleApp1
1>  
1>  -------------------------------------------------------------------------------
1>     ROBOCOPY     ::     Robust File Copy for Windows                              
1>  -------------------------------------------------------------------------------
1>  
1>    Started : 03 12월 2020 오전 10:24:53
1>     Source - 
1>       Dest - 
1>  
1>      Files : 
1>    Options : /DCOPY:DA /COPY:DAT /R:1000000 /W:30 
1>  
1>  ------------------------------------------------------------------------------
1>  
1>EXEC : error : Invalid Parameter #1 : "E:\ConsoleApp1\bin\Debug" d:\temp ConsoleApp1.*""
1>  
1>         Simple Usage :: ROBOCOPY source destination /MIR
1>  
1>               source :: Source Directory (drive:\path or \\server\share\path).
1>          destination :: Destination Dir  (drive:\path or \\server\share\path).
1>                 /MIR :: Mirror a complete directory tree.
1>  
1>      For more usage information run ROBOCOPY /?
1>  
1>                                                            
1>  ****  /MIR can DELETE files as well as copy them !
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5461,5): error MSB3073: The command "E:\ConsoleApp1\postBuildScript.bat  AnyCPU "E:\ConsoleApp1\bin\Debug\" ConsoleApp1
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5461,5): error MSB3073: " exited with code -1.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

어쨌든, 이 원인을 고치려면 지난 글에 소개한 3가지 방법 중 하나를 써야 하는데,

$(ProjectDir)postBuildScript.bat "$(TargetDir)" $(TargetName)

TargetDir 경로에 공백이 포함되어 있다면 다음과 같이 마지막에 '\' 문자를 하나 더 추가한 후 겹따옴표로 감쌀 수 있습니다.

$(ProjectDir)postBuildScript.bat $(PlatformName) "$(TargetDir)\" $(TargetName)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 12/4/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12208정성태4/12/202015938Linux: 29. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우
12207정성태4/2/202015740스크립트: 19. Windows PowerShell의 NonInteractive 모드
12206정성태4/2/202018395오류 유형: 613. 파일 잠금이 바로 안 풀린다면? - The process cannot access the file '...' because it is being used by another process.
12205정성태4/2/202015053스크립트: 18. Powershell에서는 cmd.exe의 명령어를 지원하진 않습니다.
12204정성태4/1/202015061스크립트: 17. Powershell 명령어에 ';' (semi-colon) 문자가 포함된 경우
12203정성태3/18/202017886오류 유형: 612. warning: 'C:\ProgramData/Git/config' has a dubious owner: '...'.
12202정성태3/18/202021153개발 환경 구성: 486. .NET Framework 프로젝트를 위한 GitLab CI/CD Runner 구성
12201정성태3/18/202018377오류 유형: 611. git-credential-manager.exe: Using credentials for username "Personal Access Token". [1]
12200정성태3/18/202018489VS.NET IDE: 145. NuGet + Github 라이브러리 디버깅 관련 옵션 3가지 - "Enable Just My Code" / "Enable Source Link support" / "Suppress JIT optimization on module load (Managed only)"
12199정성태3/17/202016129오류 유형: 610. C# - CodeDomProvider 사용 시 Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\f2_6uod0.tmp'.
12198정성태3/17/202019515오류 유형: 609. SQL 서버 접속 시 "Cannot open user default database. Login failed."
12197정성태3/17/202018760VS.NET IDE: 144. .NET Core 콘솔 응용 프로그램을 배포(publish) 시 docker image 자동 생성 - 두 번째 이야기 [1]
12196정성태3/17/202015932오류 유형: 608. The ServicedComponent being invoked is not correctly configured (Use regsvcs to re-register).
12195정성태3/16/202018252.NET Framework: 902. C# - 프로세스의 모든 핸들을 열람 - 세 번째 이야기
12194정성태3/16/202020976오류 유형: 607. PostgreSQL - Npgsql.NpgsqlException: sorry, too many clients already
12193정성태3/16/202017871개발 환경 구성: 485. docker - SAP Adaptive Server Enterprise 컨테이너 실행 [1]
12192정성태3/14/202019879개발 환경 구성: 484. docker - Sybase Anywhere 16 컨테이너 실행
12191정성태3/14/202021016개발 환경 구성: 483. docker - OracleXE 컨테이너 실행 [1]
12190정성태3/14/202015562오류 유형: 606. Docker Desktop 업그레이드 시 "The process cannot access the file 'C:\Program Files\Docker\Docker\resources\dockerd.exe' because it is being used by another process."
12189정성태3/13/202021171개발 환경 구성: 482. Facebook OAuth 처리 시 상태 정보 전달 방법과 "유효한 OAuth 리디렉션 URI" 설정 규칙
12188정성태3/13/202025991Windows: 169. 부팅 시점에 실행되는 chkdsk 결과를 확인하는 방법
12187정성태3/12/202015521오류 유형: 605. NtpClient was unable to set a manual peer to use as a time source because of duplicate error on '...'.
12186정성태3/12/202017379오류 유형: 604. The SysVol Permissions for one or more GPOs on this domain controller and not in sync with the permissions for the GPOs on the Baseline domain controller.
12185정성태3/11/202017957오류 유형: 603. The browser service was unable to retrieve a list of servers from the browser master...
12184정성태3/11/202019887오류 유형: 602. Automatic certificate enrollment for local system failed (0x800706ba) The RPC server is unavailable. [3]
12183정성태3/11/202017688오류 유형: 601. Warning: DsGetDcName returned information for \\[...], when we were trying to reach [...].
... 61  62  63  64  65  66  67  68  [69]  70  71  72  73  74  75  ...