Как обойти целевую команду RemoveDir в конфигурации MSBuild? - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу удалить пару каталогов в процессе сборки. Но если по какой-либо причине они не могут быть удалены, я хочу игнорировать ошибку и двигаться дальше.

Я знаю, что могу использовать RemoveDir для этой цели. Но я не знаю, как сказать, чтобы игнорировать ошибки и не нарушать сборку.

Есть идеи?

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете использовать атрибут ContinueOnError в задаче RemoveDir. Вы можете выбрать, что должно произойти, если RemoveDir не может выполнить свою работу.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="RemoveDirectories">
        <RemoveDir ContinueOnError="WarnAndContinue"
            Directories="$(SomeDir)" />
    </Target>
</Project>

Обратите внимание, что атрибут ContinueOnError не указывает c на задачу RemoveDir. Вы можете использовать его и для других.

Если по какой-то причине этого недостаточно, вы всегда можете выйти из операционной системы. Например, используйте это вместо RemoveDir -задачи, чтобы вообще не предупреждать.

<Exec Command="cmd.exe /c rmdir &quot;$(SomeDir)&quot; 2&gt;NUL" IgnoreExitCode="true"/>

Имейте в виду, что это не зависит от платформы. Если ваша сборка должна работать на других ОС, отличных от Windows, вам необходимо определить и настроить ее соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...