MSBuild, очистить несколько файлов в проекте

Я получаю следующую ошибку при попытке очистки файлов в моем проекте

Ошибка LC LC0000: "Не удалось найти файл" E:\CI\BuildServer\RMS-Transition\Group\dev\Controls\Properties\licenses.licx'.'

Моя задача MSBuild выглядит следующим образом...

<Target Name="ClearLicenseFiles">
    <ItemGroup>
        <LicenseFiles Include="..\**\*.licx"/>
    </ItemGroup>
    <WriteLinesToFile File="%(LicenseFiles.FullPath)" Lines="" Overwrite="true"/>
</Target>

Что здесь происходит? Кажется, что все.licx файлы находят просто отлично, но когда дело доходит до записи в них, они не существуют... и согласно документации WriteLinesToFile Задача должна создать файл в любом случае, если он еще не существует.

1 ответ

Решение

Я начинаю полагать, что это ошибка MSBuild... файлы лицензии УДАЛЯЮТСЯ, а не перезаписываются, как вы ожидаете. У кого-то еще была эта проблема (комментарий внизу этой статьи MSDN)

Это мое решение... Я создал файл с пустым именем empty.txt прямо рядом с моим msbuild proj, а затем скопировал этот файл в файлы licx.

<Target Name="ClearLicenseFiles">
    <ItemGroup>
        <LicenseFiles Include="..\**\*.licx"/>
    </ItemGroup>
    <Copy SourceFiles="empty.txt" DestinationFiles="%(LicenseFiles.FullPath)"/>
</Target>
Другие вопросы по тегам