내 TFSBuild.projMSBuild를 일괄 처리 - 나는를 실행하는 BeforeCompile 목표를 오버라이드 (override) 할
<ItemGroup>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../ProjectA/ProjectA.sln" />
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../x64 Installer/x64 Installer.sln" Condition="'$(Platform)' == 'x64' " />
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../x86 Installer/x86 Installer.sln" Condition="'$(Platform)' == 'x86' " />
<ConfigurationToBuild Include="Release|x86">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
<ConfigurationToBuild Include="Release|x64">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>x64</PlatformToBuild>
</ConfigurationToBuild>
</ItemGroup>
이 같은 뭔가를 대상 일부 솔루션 만 실행에 도착하는 방법을 알아낼 수 없습니다 내가 작성한 커스텀 태스크. 사용자 정의 작업은 ProjectA의 출력을 가져 와서 두 설치 프로젝트 (Wix 프로젝트 파일)에서 사용하는 파일을 빌드합니다. 두 개의 SolutionToBuild 항목에 대해서만 실행하도록 BeforeCompile 대상을 얻는 방법은 무엇입니까? 이 작업은 목표 일괄 처리에 대한 것으로 가정합니다 (작업에 조건을 사용할 수는 있지만 얻을 수 없기 때문에).
작동 여부를 확인하기 위해 이와 같은 내용을 추가하려고 시도했지만 첫 번째 해결 방법 만 출력됩니다. 로그에 :
<Target Name="BeforeCompile" Outputs="%(SolutionToBuild.Identity)">
<Message Text="Solution being built: %(SolutionToBuild.Identity)" />
</Target>
Ok - 솔루션마다 실행되는 BeforeCompileSolution 작업을 찾았지만 솔루션을 식별하는 유일한 방법은 솔루션의 전체 경로 및 파일 이름 인 $ (솔루션)이며 직접 비교하지 않습니다. '$ (BuildProjectFolderPath) /../../ x86 Installer/x86 Installer.sln' –