最近,我试图从多目标.NET Core3.0项目中删除对.NET框架目标的支持(最初支持的目标是: netfx472、netcoreapp3.0和netstandard2.1)。该项目使用以netfx472和netcoreapp3.0为目标的自定义MSBuild任务,并根据构建的目标进行加载。
在尝试删除netfx框架目标支持时,我删除了所有.NET目标,并删除了对使用MSBuild netfx目标构建的自定义任务的依赖。我现在面临的问题是,尽管能够从命令行为.netcoreapp3.0和netstandard2.1目标构建项目,但任何使用Visual Studio16.3.4或更高版本或16.4.2预览版构建项目的尝试都会因为无法加载自定义MSBuild任务而失败。这样做的副作用是,Visual Studio不支持没有正确构建的项目中的详细IntelliSense (IntelliSense被简化为只支持类型和局部变量的基本形式-不支持更复杂的功能:成员选择、表达式或语句语法助手。此外,代码修复会停止工作。)
问题似乎存在于Visual Studio使用netfx目标MSBuild发行版,而不是.NET核心目标MSBuild发行版,这阻止了在VS启动构建期间加载针对.netcoreapp3.0的MSBuild自定义任务程序集。
我已经失败了以下问题VS 2019 v16.3.4 and v16.4.prev2 are unable to build netcoreapp3.0 projects which use custom MSBuild tools targeting netcoreapp3.0与dotnet/project-system项目,然而,任何解决办法的建议将非常感谢,因为它将解锁我的工作。
发布于 2019-10-24 15:49:15
对不起,答案可能是否定的,根据产品团队的信息,在构建.net core项目时不支持基于.net core的自定义msbuild task。
看起来在这个特性支持纯.net core之前还有很长的路要走,我建议你可以通过建议一个特性选项来尝试在DC中发布一个特性请求,这可能会加快进度,让msbuild task更快地支持纯.net core。分享这里的链接,我们对它感兴趣的人会投票给你,希望它能有所帮助:)
https://stackoverflow.com/questions/58463128
复制相似问题