我正在使用 NuGet 拉入YUICompressor.NET.MSBuild,而后者又拉入YUICompressor.NET和EcmaScript.Net。
它还在我的 Web 项目中添加了对所有三个 DLL 的引用。然后我可以像这样添加 UsingTask 引用:
<UsingTask TaskName="CssCompressorTask" AssemblyFile="$(SolutionDir)\packages\YUICompressor.NET.MSBuild.2.3.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
然后使用任务在AfterBuild目标中压缩我的 Javascript/CSS
但是,我不想在我的 Web 项目中引用这些 DLL(因为它们实际上不是我发布的内容的一部分)......但是当我删除这些引用时,CssCompressorTask 将无法再找到其他两个依赖的 DLL (它们位于文件夹外的不同文件/packages夹中 - 如果它们在旁边,则可以正常工作Yahoo.Yui.Compressor.Build.MsBuild.dll)
信不信由你,我花了几个小时试图解决依赖关系:首先我尝试修改AssemblySearchPaths以包含所有其他 /packages 子文件夹,如下所示:
https://github.com/BenPhegan/NuGetAutoTransitiveDependencies
这不起作用,所以我尝试创建一个内联程序集解析器,如下所示:
MSBuild UsingTask Resolve References
这也不起作用。目前,我认为我唯一的选择是将依赖的DLL与UsingTask dll一起获取,一种或另一种方式......但这感觉就像我的MSBuild foo让我失望了:/
任何想法都非常感谢!谢谢。