Я думаю, что вы смешиваете задачи NAnt и MSBuild.
Задачи NAnt записываются в файл .build и вызываются путем передачи этого файла в исполняемый файл NAnt, как объяснено здесь . Вы загружаете их с loadtasks
.
Задачи MSBuild однако можно использовать как угодно в файле .csproj.
Вы используете usingtask
для работы с ними.
Итак, в вашем случае вы можете использовать пакет msbuildtasks , в котором также есть задача attrib
.
Установить пакет:
Последнюю сборку можно скачать из раздела релизов. https://github.com/loresoft/msbuildtasks/releases
Библиотека задач сообщества MSBuild также доступна на nuget.org через имя пакета> MSBuildTasks.
Чтобы установить MSBuildTasks, выполните следующую команду в консоли диспетчера пакетов
PM> Install-Package MSBuildTasks
При установке также убедитесь, что вы можете использовать задачи в вашем csproj без необходимости использовать usingtask
, поэтому:
<Target Name="BeforeBuild">
<Attrib Files="App.config" ReadOnly="false" />
<Attrib Files="Ocelot.json" ReadOnly="false" />
<Attrib Files="OcelotLogging.json" ReadOnly="false" />
</Target>
Обратите внимание, что это другой способ сделать это с MSBuild, этот - только самый близкий к тому, что вы написали.