msbuild 확장 팩 작업을 사용하여 폴더의 존재 여부를 어떻게 신뢰할 수 있습니까?msbuild 확장 팩을 사용하여 폴더가 있는지 확인 하시겠습니까?
어떻게하면 오류가 발생하지 않고 빌드를 중지 할 수 있습니까?
msbuild 확장 팩 작업을 사용하여 폴더의 존재 여부를 어떻게 신뢰할 수 있습니까?msbuild 확장 팩을 사용하여 폴더가 있는지 확인 하시겠습니까?
어떻게하면 오류가 발생하지 않고 빌드를 중지 할 수 있습니까?
대상에 존재 조건을 사용할 수 있습니까?
msbuild 파일과 동일한 디렉토리에 Testing이라는 디렉토리 또는 파일이있는 경우에만이 옵션이 OnlyIfExists 대상을 실행합니다.
<ItemGroup>
<TestPath Include="Testing" />
</ItemGroup>
<Target Name="OnlyIfExists" Condition="Exists(@(TestPath))">
<Message Text="This ran!" Importance="high" />
</Target>
확장팩을 사용할 필요가 없으므로 MSBuild에서 잘 처리 할 수 있습니다. 이 폴더가 빌드의 일부로 작성되거나 삭제 될 수 있는지 여부를 고려해야합니다. 그렇다면 대상 내에 선언 된 동적 항목 그룹 (둘 이상의 폴더를 확인하는 경우)을 사용하거나 경로를 선택하면 경로를 사용할 수 있습니다. 이 예는 다음 두 가지를 모두 보여줍니다.
<Target Name="MyTarget">
<!-- single folder with property -->
<PropertyGroup>
<_CheckOne>./Folder1</_CheckOne>
<_CheckOneExistsOrNot
Condition="Exists('$(_CheckOne)')">exists</_CheckOneExistsOrNot>
<_CheckOneExistsOrNot
Condition="!Exists('$(_CheckOne)')">doesn't exist</_CheckOneExistsOrNot>
</PropertyGroup>
<Message
Text="The folder $(_CheckOne) $(_CheckOneExistsOrNot)"
/>
<!-- multiple folders with items -->
<ItemGroup>
<_CheckMultiple Include="./Folder2" />
<_CheckMultiple Include="./Folder3" />
</ItemGroup>
<Message
Condition="Exists('%(_CheckMultiple.Identity)')"
Text="The folder %(_CheckMultiple.Identity) exists"
/>
<Message
Condition="!Exists('%(_CheckMultiple.Identity)')"
Text="The folder %(_CheckMultiple.Identity) does not exist"
/>
</Target>
대단히 고마워요. 이것은 훌륭하고 분명합니다. –