2011-07-28 3 views
2

어쨌든 프로젝트의 출력을 현재 시작 프로젝트의 bin 폴더에 솔루션에서 복사합니까? MSBuild 스크립트에서 시작 프로젝트가 어떤 프로젝트인지 알 수 있습니까? 내가 말하는 프로젝트는 PRISM 모듈이며 모듈성으로 인해 쉘 프로젝트에서 참조하지 않습니다. 그러나 우리는 여전히 솔루션에 추가합니다.참조되지 않은 프로젝트를 솔루션에서 솔루션의 시작 프로젝트로 복사

지금까지 우리는 응용 프로그램을 디버깅하는 데 매우 깔끔한 솔루션을 제공했습니다. 우리의 인프라 프로젝트 (빌드 프로세스의 최하위 수준)는 ... Shell \ bin \ Debug \ Modules 폴더를 삭제합니다. 이 응용 프로그램의 부트 스트 래퍼는 "모듈"디렉토리에서 직접 모듈을로드하도록 구성됩니다. 모든 모듈 프로젝트의 OutputPath는이 폴더로 구성됩니다.

이 빌드 프로세스는 단순히 프로젝트로드/언로드로 디버깅 할 모듈을 선택할 수 있다는 장점이 있습니다. 모듈 폴더는 시작시 항상 비게되고로드 된 프로젝트 만 빌드됩니다. 이는 모듈을 다양하게 혼합하여 구성 할 수있는 디버깅 방법입니다.

우리는 이미 다른 쉘용으로 만든 모듈을 사용하는 새로운 PRISM 프로젝트를 시작했습니다. 이제는이 편안한 설정이 더 이상 작동하지 않는다는 문제에 직면합니다. 단일 모듈 프로젝트에는 고정 된 OutputPath가 있으며 개발자는 문제없이 다른 솔루션에서 프로젝트를 재사용 할 수 없습니다.

Btw, MSBuild 스크립트는 아니지만 자동화되어야합니다.

편집 : 공통된 모듈을 사용하는 여러 프리즘 쉘에서 동일한 아이디어가 작동해야한다는 점과 여러 프리즘 제품에서 동시에 작업 할 수 있다는 점을 강조하는 것을 잊어 버렸습니다. 그래서 모든 폴더에 대해 공유 출력 경로를 사용할 수 없습니다.

답변

2

당신은 이런 식으로 다른 프로젝트의 출력을 복사의 MSBuild에 AfterBuild 대상을 지정할 수 있습니다 : 그 정보가 .suo 파일에 저장 될 때

<Target Name="AfterBuild"> 
    <Copy SourceFiles="$(SolutionDir)MyProject1\bin\$(Configuration)\*.dll" DestinationFolder="$(TargetDir)"/> 
    <!-- repeat for other projects --> 
</Target> 

AFAIK를 시작 프로젝트를 찾는 사소한 없습니다. 자신의 MSBuild 작업을 작성하거나 확장 할 수 있습니다. MSBuild Community task: GetSolutionProjects

1

"새"프로젝트의 OutputPath가 "Shell"응용 프로그램과 같은 Shell ... bin \ Debug 폴더를 가리 키도록 구성 할 수 있습니다. 이렇게하면 새 응용 프로그램이 모듈을 동일한 모듈 폴더에서 다시로드 할 수 있습니다. 시스템의 다른 부분을 변경하지 않아도됩니다.

+0

편집 된 질문을 편집합니다. 공통된 모듈을 사용하여 여러 가지 프리즘 쉘에서 동일한 아이디어가 작동해야하며 여러 프리즘 제품에서 동시에 작업 할 수 있다는 점을 강조했습니다. 그래서 모든 폴더에 대해 공유 출력 경로를 사용할 수 없습니다. –

+0

각 제품에 대해 서로 다른 "활성"모듈 세트를 가질 수 있다는 것을 의미합니까? (공유 출력 경로가 작동하지 않는 이유를 알아 보려면 프리즘을 읽어야합니다.) –

+0

@ Gerstendörfer : 예. 간단히 말해, 프로젝트를 참조 할 때 참조 할 때와 동일한 개발 경험을 원합니다. –

관련 문제