c# – 如何让Visual Studio 2015 xproject(project.json)引用依赖项目的最高框架

栏目: C# · 发布时间: 5年前

内容简介:我正在创建一个可重用的库,它针对几个平台(.NET 4.0,.NET 4.5,.NETStandard 1.0和.NETStandard 1.3).此项目的.NET 4.5版本包含.NET 4.0版本下不可用的一些功能.引用此库项目的单元测试项目有一个单一的目标平台,即NET 4.5.1.该测试项目显然包含一些代码,用于测试核心库的.NET 4.5特定功能.不幸的是,测试项目没有编译,因为Visual Studio似乎引用了.NETStandard 1.0版本,显然不包含此功能.

我正在创建一个可重用的库,它针对几个平台(.NET 4.0,.NET 4.5,.NETStandard 1.0和.NETStandard 1.3).此项目的.NET 4.5版本包含.NET 4.0版本下不可用的一些功能.

引用此库项目的单元测试项目有一个单一的目标平台,即NET 4.5.1.该测试项目显然包含一些代码,用于测试核心库的.NET 4.5特定功能.

不幸的是,测试项目没有编译,因为Visual Studio似乎引用了.NETStandard 1.0版本,显然不包含此功能.

为了演示我的问题,我将其简化为以下两个项目:

核心库:

{
  "version": "1.0.0-*",

  "frameworks": {
    "netstandard1.0": {
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      }
    },
    "net40": {},
    "net45": {}
  }
}

代码文件:

namespace CoreLibrary
{
#if NETSTANDARD1_0
    public class ClassNetStandard { }
#endif

#if NET40
    public class ClassNet40 { }
#endif

#if NET45
    public class ClassNet45 { }
#endif
}

测试库:

{
  "version": "1.0.0-*",

  "dependencies": {
    "CoreLibrary": { "target": "project" }
  },
  "frameworks": {
    "net451": {}
  }
}

码:

// This compiles
new CoreLibrary.ClassNetStandard();

// This doesn't.
// error: Type or namespace 'ClassNet40' does not exist in namespace 'CoreLibrary'
new CoreLibrary.ClassNet40();
// error: Type or namespace 'ClassNet45' does not exist in namespace 'CoreLibrary'
new CoreLibrary.ClassNet45();

我应该更改什么才能让我的单元测试项目编译和测试特定的.NET 4.5功能?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro Git

Pro Git

Scott Chacon / Apress / 2009-8-27 / USD 34.99

Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops a......一起来看看 《Pro Git》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换