MSBuild UsingTask 和解析引用

标签 msbuild nuget msbuild-task yui-compressor

我正在使用 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 失败了:/

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

最佳答案

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

关于MSBuild UsingTask 和解析引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18364243/

相关文章:

.net - CruiseControl.NET构建标签问题

wcf - 私有(private) NuGet 服务器 : Request Entity Too Large

msbuild - 使用 MSBuild 构建所有输出并将其复制到公共(public)文件夹时出现问题

.net-core - 仅在 .NET Core 3.1 项目中进行目标重建

msbuild - 如何使用 IIS 6 Web Deploy 部署到非默认虚拟路径?

asp.net-core - 如何在 dotnet Core 中添加 moq 作为依赖项?

msbuild - Nuget.targets : error could not find a part of the path

visual-studio - 如何让 MSBuild 了解我的 tlog 文件中的读取依赖项?

visual-studio - MSBuild:在 Visual Studio 中构建解决方案后运行目标

c# - 使用 MSBuild 预编译 ASP.NET Web 应用程序