首页 > 解决方案 > Visual Studio 2019 v16.3 及更高版本无法使用 netcoreapp3.0 MSBuild 任务构建 netcoreapp3.0 项目的解决方法

问题描述

最近,我尝试从多目标 .NET Core 3.0 项目(最初支持的目标:netfx472、netcoreapp3.0 和 netstandard2.1)中删除对 .NET Framework 目标的支持。该项目使用以 netfx472 和 netcoreapp3.0 为目标的自定义 MSBuild 任务,并根据构建的目标进行加载。

在尝试删除 .NET Framework 目标支持时,我已删除所有 netfx 目标并删除了对使用 MSBuild netfx 目标构建的自定义任务的依赖。我现在面临的问题是,尽管能够从命令行为 .netcoreapp3.0 和 netstandard2.1 目标构建项目,但任何使用 Visual Studio 16.3.4 或更高版本或 16.4.2 预览构建它的尝试都会失败,原因是无法加载自定义 MSBuild 任务。这样做的副作用是 Visual Studio 不支持未正确构建的项目中的详细 IntelliSense(IntelliSense 被简化为仅支持类型和局部变量的基本形式 - 不支持更复杂的功能:成员选择,表达式或语句语法助手。此外,代码修复停止工作。)

问题似乎在于 Visual Studio 使用了针对 MSBuild 发行版的 netfx,它是 Visual Studio 附带的,而不是针对 MSBuild 发行版的 .NET Core,这会阻止在 VS 启动构建期间加载针对 .netcoreapp3.0 的 MSBuild 自定义任务程序集。

我在以下问题上失败了VS 2019 v16.3.4 和 v16.4.prev2 无法构建 netcoreapp3.0 项目,这些项目使用针对 netcoreapp3.0的自定义 MSBuild 工具和dotnet/project-system项目,但是,对于任何解决方法的建议将不胜感激,因为它会解锁我的工作。

标签: msbuildintellisensevisual-studio-2019msbuild-task.net-core-3.0

解决方案


抱歉,答案可能是否定的,根据产品团队的信息,构建项目时不支持msbuild task基于的自定义。.net core.net core

看来这个功能要支持pure还有很长的路要走.net core,我建议你可以尝试通过建议一个功能选项在DC中发布功能请求,它可能会加快进度让支持pure更快。在这里分享链接,有兴趣的我们会投票给你,希望对你有所帮助:)msbuild task.net core


推荐阅读