Tôi muốn khai báo ba thuộc tính trong tệp MSBuild của tôi và ghi đè lên một thuộc tính với giá trị khác (tùy thuộc vào đích được gọi), nhưng không thể tìm ra cách thực hiện. Tệp xây dựng của tôi trông giống như sau:Ghi đè các thuộc tính với 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>
Hiện tại tôi đang cố gắng khai báo lại thuộc tính về giá trị của nó, nhưng điều này không có tác dụng.
Cảm ơn bạn, đó là hữu ích. Tôi vẫn còn hơi mới mẻ đối với việc tạo nhóm và MS không thực hiện tốt công việc giải thích các khái niệm liên quan theo ý kiến của tôi. Một lưu ý nữa. Tôi thực sự đã đi mà không tạo ra một tài sản toàn cầu; để thu hẹp ngữ cảnh một chút để đọc mã dễ dàng hơn: Mục tiêu A gọi các mục tiêu B và C. B đặt một thuộc tính danh sách và C thực hiện phân lô theo giá trị của thuộc tính đó. như mdresser lưu ý thiết lập các tài sản trong cùng một mục tiêu đã không làm việc. Hy vọng nó sẽ giúp một ai đó; Tôi đã dành 3-4 giờ cố gắng để hiểu điều này trước khi tôi tìm thấy bài đăng này. – AlexeiOst
Một điểm nữa, bạn nói bạn nhận được thông báo rằng chỉ có Mèo đã thay đổi, bạn đã thử lưu các thay đổi chưa? Nó có hoạt động không? (Tôi nghi ngờ nó) –