Comment utiliser la tâche WebGreaseTask MSBuild de WebGrease ?
-
23-12-2019 - |
Question
Dans la documentation de WebGrease, elle parle de l'utilisation d'une tâche MSBuild faire une minification au moment de la construction.Cependant, lorsque j'ajoute la tâche à mon fichier projet, elle échoue.
Voici les lignes que j'ai ajoutées à mon projet
<UsingTask TaskName="WebGreaseTask" AssemblyName="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
<Target AfterTargets="DotLessBuildTasksDotNet" Name="Minify">
<WebGreaseTask />
</Target>
Mais lorsque j'essaye de compiler, j'obtiens l'erreur suivante :
La tâche "WebGreasetask" n'a pas pu être chargée à partir de l'assembly WebGrease, version = 1.6.5135.21930, Culture = Neutre, publicKeyToken = 31BF3856AD364E35, procedarchitecture = MSIL.Impossible de charger le fichier ou l'assemblage 'WebGrease, version = 1.6.5135.21930, Culture = Neutral, PublicKeyToken = 31BF3856AD364E35' ou l'une de ses dépendances.Le système ne peut pas trouver le fichier spécifié.Confirmez que la déclaration est correcte, que l'assemblage et toutes ses dépendances sont disponibles, et que la tâche contient une classe publique qui implémente Microsoft.build.framework.itask.
Pour autant que je sache, c'est le nom correct de l'assembly, car j'utilise la même référence dans mon projet :
<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>
Et tout le code fonctionne bien.
Je veux faire la minification au moment de la compilation, ce qui, je crois, est le but de la tâche de construction.Je sais qu'il existe une pléthore d'aides au regroupement et à la minification, mais j'aimerais éviter de récupérer plus de packages que nécessaire.
Modifier:
J'ai essayé les différentes commandes NuGet, mais celles-ci n'affectent pas le UsingTask
nœud de quelque manière que ce soit, et ne fait pas non plus fonctionner la construction.Toujours perdu face à cette erreur.
La solution
En regardant dans le code source, il y a une classe https://webgrease.codeplex.com/SourceControl/latest#WebGrease/WebGrease.Build/WebGreaseTask.cs qui ressemble à ce dont vous avez besoin, mais après avoir décompilé mon package nuget WebGrease local, je ne vois pas cette classe ou WebGrease.Build
assemblée là-bas du tout.Comme le souligne l'erreur, il ne trouve pas de classe qui implémente ITask
et cette classe l'implémente exactement.