繁体   English   中英

引用.NET Standard 2.0库的.NET 4.6.1项目-VSTS不会构建

[英].NET 4.6.1 project referencing a .NET Standard 2.0 library - VSTS wont build

我在.NET 4.6.1项目中引用了.NET Standard 2.0.0项目。

在本地构建项目效果很好。 在VSTS上使用托管代理进行构建会产生以下错误:

“对象”类型在未引用的程序集中定义。 您必须添加对程序集“ netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51”的引用。

添加在Web.config中netstandard组装描述这里 ,没有工作,同样的错误:

<system.web> <compilation debug="true" targetFramework="4.6.1" > <assemblies> <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/> </assemblies> </compilation> <httpRuntime targetFramework="4.6.1" />

还尝试添加NETStandard.Library.NETFramework Nuget包。 有很多这样的错误:

CSC:错误CS1703:已导入具有相同标识的多个程序集:'D:\\ a \\ 1 \\ s \\ packages \\ NETStandard.Library.NETFramework.2.0.0-preview2-25405-01 \\ build \\ net461 \\ ref \\ System。 Xml.XmlSerializer.dll”和“ C:\\ Program Files(x86)\\参考程序集\\ Microsoft \\ Framework.NETFramework \\ v4.6.1 \\ Facades \\ System.Xml.XmlSerializer.dll”。 删除重复的引用之一。

在Nuget.org上使用了最新的NETStandard.Library.NETFramework软件包-2.0.0-preview2-25405-01。 软件包说明中说:

不推荐使用此程序包。 要在VS2017 15.3中使用.NET Framework中的.NET标准库,您只需要安装.NET Core 2.0 SDK。 对于VS 2015,您将需要NuGet客户端3.6或更高版本。

还尝试为2.0.0版添加“ .NET Core Tool Installer”作为第一步。 没运气。

这是我当前的构建配置。 如何使它对引用.NET Standard 2.0库的.NET 4.6.1项目起作用?

在此处输入图片说明

我在线上找到了许多有关安装NuGet软件包,添加.NET Core工具,还原和构建步骤的信息-但实际上,最后我通过在几个地方更改一项来解决了该问题。

您需要确保生成的版本始终要求正确的Visual Studio / VSTest版本

我有一个带有一个阶段的构建,其中包含一个构建和一个测试步骤(以及诸如NuGet还原,发布之类的东西-但它们不依赖于任何版本的Visual Studio)。

在阶段级别,您需要选择“托管VS2017”代理队列。

对于构建步骤,您需要将Visual Studio版本设置为“ Visual Studio 2017”。

对于测试步骤,您需要打开“高级执行选项”并将VSTest版本设置为“最新”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM