5

我正在使用 NuGet 拉入YUICompressor.NET.MSBuild,而后者又拉入YUICompressor.NETEcmaScript.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让我失望了:/

任何想法都非常感谢!谢谢。

4

2 回答 2

0

好的,v2.4.0.0+现在包含 DLL

于 2014-09-07T21:43:24.163 回答
0

我需要我的自定义任务来使用 JSON API (NewtonSoft)。直到我运行 MSBuild 才加载外部 dll gacutil /i [path to dll]

于 2014-09-07T05:20:30.887 回答