Как использовать задачу WebGreaseTask MSBuild из WebGrease?
-
23-12-2019 - |
Вопрос
В в документации для WebGrease говорится об использовании задачи MSBuild чтобы выполнить минимизацию во время сборки.Однако, когда я добавляю задачу в свой файл проекта, происходит сбой.
Вот строки, которые я добавил в свой проект
<UsingTask TaskName="WebGreaseTask" AssemblyName="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
<Target AfterTargets="DotLessBuildTasksDotNet" Name="Minify">
<WebGreaseTask />
</Target>
Но когда я пытаюсь создать, я получаю следующую ошибку:
Не удалось загрузить задачу "WebGreaseTask" из сборки WebGrease, версия=1.6.5135.21930, язык интерфейса=нейтральный, PublicKeyToken=31bf3856ad364e35, архитектура процессора=MSIL.Не удалось загрузить файл или сборку 'WebGrease, версия=1.6.5135.21930, Culture=нейтральный, PublicKeyToken=31bf3856ad364e35' или одну из ее зависимостей.Системе не удается найти указанный файл.Убедитесь, что объявление указано правильно, что сборка и все ее зависимости доступны и что задача содержит общедоступный класс , реализующий Microsoft.Build.Рамки.Это задача.
Насколько я знаю, это правильное название сборки, поскольку я использую ту же ссылку в своем проекте:
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
</Reference>
И весь код там работает нормально.
Я хочу выполнить минимизацию во время компиляции, что, как я полагаю, является целью задачи сборки.Я знаю, что существует множество помощников по комплектации и минимизации, но я бы не хотел использовать больше пакетов, чем необходимо.
Редактировать:
Я пробовал различные команды NuGet, но они не влияют на UsingTask
узел каким-либо образом, и также не заставляйте сборку работать.Все еще в недоумении из-за этой ошибки.
Решение
Если посмотреть в исходном коде, то там есть класс https://webgrease.codeplex.com/SourceControl/latest#WebGrease/WebGrease .Сборка/WebGreaseTask.cs который выглядит как то, что вам нужно, но после декомпиляции моего локального пакета WebGrease nuget я не вижу этого класса или WebGrease.Build
сборки там вообще нет.Как указывает ошибка, он не может найти класс, который реализует ITask
и этот класс в точности реализует это.