我正在使用 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让我失望了:/
任何想法都非常感谢!谢谢。