나는 정상적인 SLN 파일을 가지고 있으며 명령 행에서 msbuild를 사용하여 정상적으로 컴파일하고있다.msbuild SLN과 여전히 별도의 프로젝트 출력을 얻을 수 있습니까?
C : 나는 이렇게 \ slndir> msbuild를/P : OUTDIR = C : \ slnbin \
그리고 그것은 C에 모든 것을 덤프 : C에 배포 얻을 웹 사이트를 제외하고 \ slnbin을 : \ slnbin_PublishedWebsites \.
bin 디렉토리에 모든 바이너리를 놓는 것뿐만 아니라 각 실행 가능한 프로그램에 각 웹 사이트와 비슷한 자체 "배치 된"폴더가 있어야합니다. 나는 다음과 같은 프로젝트가있는 경우
따라서, 예를 들어, :
C:\slnbin\ // Everything
C:\slbin\Deploy\Service1 // Common, Lib1, Service1
C:\slbin\Deploy\Service2 // Common, Lib2, Service2
을 내가하고 시도 : - 공통 - LIB1 - 서비스 1 - 을 - LIB2 서비스 2
내가 얻을 완 "msbuild/p : OutDir = C : \ slnbin \ $ (ProjectName)"과 같은 내용이지만 그냥 리터럴로 처리하고 실제 "$ (ProjectName)"하위 디렉토리를 만듭니다.
각 프로젝트를 개별적으로 수정할 필요는 없습니다.
이것이 가능합니까? 쉬운?
이것은 우리에게 큰 도움이되고 있습니다. 한 가지 질문 - MSBuild를 Projects = "% (ProjectFiles.Fullpath)"로 호출하면 MSBuild가 각 프로젝트를 한 번만 빌드 할만큼 똑똑합니까? 예를 들어 솔루션에있는 foo.dll이 있고 다른 4 개의 프로젝트에서 참조하는 foo.dll은 한 번 또는 4 번 또는 5 번 foo.dll을 빌드합니까? –
"Exec 태스크를 사용하여 MSBuild.exe를 시작하는 것과 달리이 태스크는 동일한 MSBuild 프로세스를 사용하여 하위 프로젝트를 빌드합니다. 건너 뛸 수있는 이미 빌드 된 대상 목록은 상위 및 하위 빌드간에 공유됩니다. 새로운 MSBuild 프로세스가 생성되지 않기 때문에 더 빠릅니다. " 그래서 나는 foo.dll이 한 번 빌드 될 것이라고 추측하지만 확실하지 않습니다. –
빌드에 필요한 명령 줄은 무엇입니까? –