当net461引用netstandard2.0

时间:2017-11-02 09:47:41

标签: msbuild azure-devops azure-pipelines .net-standard .net-standard-2.0

我们正在将库项目从netstandard2.0迁移到net461。有些库不支持.NET Standard,因此托管应用程序运行net461并引用我们使用netstandard2.0的库。

这在Visual Studio 15.3本地完美运行,其中所有内容都在运行和构建。

根据Microsoft documentation .NET标准与SDK 2.0实现4.6.1,我假设它是为什么它在本地工作。

.NET Standard support

在Visual Studio Online(VSTS)中运行构建失败时出现多个错误,如:

  

包Microsoft.AspNetCore.Mvc 2.0.0与net461(.NETFramework,Version = v4.6.1)不兼容。软件包Microsoft.AspNetCore.Mvc 2.0.0支持:netstandard2.0(.NETStandard,Version = v2.0)

我阅读了github讨论herehere,其中讨论了类似问题是一个工具问题,并添加了.NET Core Tool Installer任务来构建安装Core 2.0但仍然没有运气。

我需要做些什么才能让构建在VSTS中运行?

更新:

(将标题更改为Visual Studio Build而不是MS Build)

发现此帖子https://github.com/dotnet/standard/issues/454正在讨论需要更新的VSTS。

我正在运行VS Enterprise 15.4.1,VSTS Build is running version 15.3.5 today根据github上的问题就足够了。这更令人困惑。

1 个答案:

答案 0 :(得分:2)

使用版本为dotnet restore的{​​{1}}和dotnet build找到了一种解决方法,效果非常好。

不要使用MS Build或Visual Studio 2017构建,只需使用以下2.* (preview)任务替换构建任务。

(如果您没有任何私人订阅源,则甚至不需要dotnet命令,因为dotnet restore将为您恢复包。)

TL; DR;请改用:

Working build tasks