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>