문제

성공적인 빌드에서는 출력 디렉토리의 내용을 동일한 위치에 다른 위치에 복사하고 싶습니다. "베이스" 폴더. 이 상위 폴더는 상대적인 부분이며 소스 제어 설정에 따라 다를 수 있습니다.

나는 나에게 사용할 수있는 몇 가지 매크로 값을 나열했다 ...

$ (SolutionDir) = D : globaldir version appnameSolution1 빌드

$ (projectDir) = D : globaldir version appnameSolution1 버전 projecta

출력 DIR 컨텐츠를 다음 폴더에 복사하고 싶습니다.

D : globaldir version appnameSolution2 Project 종속성

기본 위치 "d : globaldir version appname"은 위의 매크로 중 하나에서 가져와야합니다. 그러나 매크로 값 목록은 없습니다 부모 위치.

어떻게 추출합니까? 게시물 빌드 복사 명령의 기본 위치?

도움이 되었습니까?

해결책

TargetDir 또는 기타 매크로가 올바른 위치를 가리 키지 않으면 ".."디렉토리를 사용하여 폴더 계층 구조를 뒤로 이동하십시오.

즉. 사용 $(SolutionDir)\..\.. 기본 디렉토리를 얻으려면.


모든 매크로 목록은 여기를 참조하십시오.

http://msdn.microsoft.com/en-us/library/c02as0cs.aspx

다른 팁

다음은 프로젝트의 건축 후 이벤트 명령 줄에 넣고 싶은 것입니다.

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

편집 : 또는 대상 이름이 프로젝트 이름과 다른 경우.

copy /Y "$(TargetDir)$(TargetName).dll" "$(SolutionDir)lib\$(TargetName).dll"

당신은 시도 할 수 있습니다 :

$(SolutionDir)..\..\

나는 이것이 관련이 있다고 생각하지만 직접 구축 할 때 문제가있었습니다. msbuild 명령 줄 (배치 파일에서) 대 내부에서 빌딩.

다음과 같은 것을 사용합니다.

<PostBuildEvent>
  MOVE /Y "$(TargetDir)something.file1" "$(ProjectDir)something.file1"
  start XCOPY /Y /R "$(SolutionDir)SomeConsoleApp\bin\$(ConfigurationName)\*" "$(ProjectDir)App_Data\Consoles\SomeConsoleApp\"
</PostBuildEvent>

(노트: start XCOPY 보다는 XCOPY 복사를 방지하는 권한 문제를 해결하는 데 사용됩니다)

매크로 $(SolutionDir) 평가 ..\ Batchfile에서 MSBuild를 실행할 때 XCOPY 명령 실패. 비주얼 스튜디오 내에서 제작 될 때 잘 작동했습니다. 사용 확인 /verbosity:diagnostic 평가 된 출력을 볼 수 있습니다.

매크로 사용 $(ProjectDir)..\ 대신, 같은 일에 해당하는 대신 잘 작동하고 두 빌드 시나리오에서 전체 경로를 유지했습니다.

MSBuild를 직접 사용하는 것이 합리적이지 않습니까? 모든 빌드 에서이 작업을 수행하는 경우 마지막에 MSBuild 작업을 추가 할 수 있습니까? Visual Studio IDE에 표시되지 않은 다른 매크로 값을 찾을 수 없는지 확인하려면 MSBuild 옵션을 진단으로 전환 할 수 있으며 사용할 수있는 모든 변수를 표시 할 수 있습니다. 그들의 현재 가치뿐만 아니라.

Visual Studio에서 이것을 켜려면 도구/옵션으로 이동 한 다음 프로젝트 및 솔루션이라는 섹션으로 트리보기를 아래로 스크롤하고 확장하고 빌드 및 실행을 클릭하십시오. ,이를 진단으로 설정하면 사용할 수있는 다른 매크로 값이 표시됩니다.

나는 당신이 어떤 수준을 가고 싶은지, 그리고 당신의 빌드가 얼마나 복잡한 지 잘 모르기 때문에 당신에게 아이디어를 줄 수 있습니다. 최근에 빌드 스크립트를 작성해 왔으며, 심지어 빌드의 일부로 SQL 코드를 실행했습니다. 더 많은 도움이나 샘플 빌드 스크립트를 원한다면 알려주십시오. 그러나 빌드가 끝날 때 실행하려는 작은 프로세스라면 전체 MSBuild 스크립트가 약간 오버로 죽일 것입니다. .

리한을 돕기를 바랍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top