visual-studio - Visual Studio 2017 未从指定路径加载 AjaxMin MSBuild 任务

标签 visual-studio msbuild visual-studio-2017 microsoft-ajax-minifier

我正在尝试更新现有应用程序,以便它可以从 Visual Studio 2015 (Enterprise) 加载到 Visual Studio 2017 (Enterprise - V15.2 (26430.12)) 中,并且在 AjaxMin 构建任务中遇到问题。

在 Visual Studio 2015 中,AjaxMin 构建任务位于 C:\Program Files (x86)\MSBuild\Microsoft\MicrosoftAjax。 Visual Studio 2017 在 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft 中查找它。鉴于团队中的所有开发人员可能都没有 VS2017 Enterprise,而且我们过去曾遇到过开发人员安装错误版本的问题,我想让它使用解决方案中引用的 AjaxMin NuGet 包。

解决方案中有 3 个项目使用了 AjaxMin 任务。我已经更新了所有这些以具有以下导入:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
...
<Import Project="$(MSBuildProjectDirectory)\..\..\..\packages\AjaxMin.5.14.5506.26202\tools\net40\AjaxMin.targets" />
<Target Name="BeforeBuild">
  <ItemGroup>
    <JS Include="..." Exclude="..." />
  </ItemGroup>
  <ItemGroup>
    <CSS Include="..." Exclude="..." />
  </ItemGroup>
  <AjaxMin Switches="..." JsSourceFiles="@(JS)" JsCombinedFileName="..." CssSourceFiles="@(CSS)" CssCombinedFileName="..." />
</Target>
...
</Project>

但是,当构建发生时,我收到一条错误消息,指出在默认构建扩展目录中找不到 AjaxMin 任务:

The "AjaxMin" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\MicrosoftAjax\AjaxMinTask.dll. Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\MicrosoftAjax\AjaxMinTask.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.



我用过 MSBuild Message Task输出路径并通过从命令提示符导航到它来验证它是否正确。我也尝试使用 UsingTask没有运气。

为什么 Visual Studio 不在我指定的位置寻找 AjaxMin DLL?

更新:
我将 AjaxMin 的导入标签移到顶部(在项目标签的正下方),现在它可以工作了。我不明白为什么。

最佳答案

我通过安装 .Net 3.5 框架解决了这个问题

关于visual-studio - Visual Studio 2017 未从指定路径加载 AjaxMin MSBuild 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331857/

相关文章:

c++ - 如何在 VS 2017 中为 C++ 添加单元测试?

javascript - Gulp Dest() 不输出文件

c# - 具有径向渐变的 WPF 径向进度条

c++ - 如何使用 freopen 从 Shader 中读取打印流?

c# - 使用 getter/setter 类属性时 msbuild 编译失败

visual-studio - Visual Studio 2017 msbuild与dotnet客户端工具不同

c# - 在 Visual Studio Online Build Definition 中从具有多个 Web 项目的解决方案构建一个 Web 项目

c++ - 我们如何在 VS2017 中在项目成员之间共享编译设置?

.net - 在 VS2010 中编译旧版本的 .net

visual-studio - 将解决方案添加到 Team Foundation Server 2010 时显示警告