我有一个基于ASP.NET Core构建的web.api项目,目标框架设置为.NET Framework 4.6.1。此外,还有一个类库项目,由Web API引用,其目标框架设置为.NET Standard 2.0。该项目构建,我可以在我的本地服务器(Visual Studio IIS Express)中正常访问API,但是当我尝试在CI服务器上构建项目时,我收到以下错误:
Project'xxx.csproj'的目标是'.NETStandard,Version = v2.0'。它不能被针对'.NETFramework,Version = v4.6.1'的项目引用。在CI服务器
如何解决此问题?
更新: 正如Chris建议的那样,我将VS构建工具升级到15.5(最新版本)。然后我得到了一系列错误如下:
1)项目的默认XML名称空间必须是MSBuild XML名称空间。如果项目是以MSBuild 2003格式创作的,请在元素中添加xmlns =“http://schemas.microsoft.com/developer/msbuild/2003”。如果项目是以旧的1.0或1.2格式编写的,请将其转换为MSBuild 2003格式。
2)元素中的“Version”属性无法识别。
3)项目中不存在目标“清洁”。
前两个 - 我通过修改csproj文件来摆脱它们(虽然我不确定它是否有必要?)我仍然坚持第三个。
答案 0 :(得分:0)
这里真的没有足够的实际诊断问题,但我最好的猜测是你在构建服务器上缺少.NET Core 2.0 SDK。如果没有.NET Core 2.0 SDK,.NET Standard 2.0与.NET Framework 4.6.1不兼容。