내 MSBuild 파일에 3 개의 속성을 선언하고 하나의 속성을 다른 대상의 값 (대상에 따라 다름)으로 덮어 쓰고 싶지만이를 수행하는 방법을 알 수 없습니다. 나는 그에 따라 값을의 설정 속성을 다시 선언하기 위해 노력하고있어,하지만이 작동하지 않는 순간MSBuild로 속성 덮어 쓰기
<PropertyGroup>
<DeployPath_TEST>\\test-server-path\websites\mysite</DeployPath_TEST>
<DeployPath_LIVE>\\live-server-path\websites\mysite</DeployPath_LIVE>
<DeployPath></DeployPath>
</PropertyGroup>
<Target Name="Deploy-TEST">
<PropertyGroup>
<DeployPath>$(DeployPath_TEST)</DeployPath>
</PropertyGroup>
<CallTarget Targets="Deploy-Sub"/>
</Target>
<Target Name="Deploy-LIVE">
<PropertyGroup>
<DeployPath>$(DeployPath_TEST)</DeployPath>
</PropertyGroup>
<CallTarget Targets="Deploy-Sub"/>
</Target>
<Target Name="Deploy-Sub">
<Message Text="Deploying to $(DeployPath)"/>
<MSBuild Projects="MySolution.csproj" Targets="Rebuild" />
<ItemGroup>
<MyFiles Include="**\*"/>
</ItemGroup>
<Copy SourceFiles="@(MyFiles)"
DestinationFiles="@(MyFiles->'$(DeploymentPath)\%(RecursiveDir)%(FileName)%(Extension)')"/>
</Target>
: 내 빌드 파일은 다음과 같이 보인다.
감사합니다. 유용했습니다. 나는 아직도 다소 일괄 처리에 익숙하지 않고 MS는 내 생각에 관련 개념을 설명하는 좋은 일을하지 않는다. 한 가지 더. 사실 글로벌 자산을 만들지 않고 떠났습니다. 컨텍스트가 조금 좁아 지므로 코드를 읽는 것이 더 쉽습니다. 대상 A는 대상 B와 C를 호출합니다. B는 목록 속성을 설정하고 C는 해당 속성의 값을 일괄 처리합니다. mdresser가 동일한 목표의 속성을 설정하는 것이 효과가 없다고 지적한 것처럼 누군가가 도움이되기를 바랍니다. 나는이 글을 발견하기 전에 이것을 이해하려고 3-4 시간을 보냈다. – AlexeiOst
한 가지 더 요점은 Cat 만 변경되었다는 알림을 받고 변경 사항을 저장하려고 했습니까? 작동합니까? (나는 그것을 의심한다) –