C#学习教程:如何让VisualStudio2015xproject(project.json)引用依赖项目的最高框架我正在创建一个可重用库,它针对多个平台(.NET4.0、.NET4.5、.NETStandard1.0和.NETStandard1.3)。该项目的.NET4.5版本包含一些.NET4.0版本下不可用的功能。引用此库项目的单元测试项目具有单一目标平台NET4.5.1。测试项目显然包含一些代码来测试核心库的.NET4.5特定功能。不幸的是,测试项目没有编译,因为VisualStudio似乎引用了.NETStandard1.0版,而它显然不包含此功能。为了演示我的问题,我将其简化为以下两个项目:核心库:{“版本”:“1.0.0-*”,“框架”:{“netstandard1.0”:{“依赖项”:{"NETStandard.Library":"1.6.0"}},"net40":{},"net45":{}}}代码文件:namespaceCoreLibrary{#ifNETSTANDARD1_0publicclassClassNetStandard{}#endif#ifNET40publicclassClassNet40{}#endif#ifNET45publicclassClassNet45{}#endif}测试库:{"version":"1.0.0-*","dependencies":{"CoreLibrary":{"target":"project"}},"frameworks":{"net451":{}}}代码://这会编译newCoreLibrary.ClassNetStandard();//这不是。//错误:命名空间“CoreLibrary”中不存在类型或命名空间“ClassNet40”newCoreLibrary.ClassNet40();//错误:命名空间“CoreLibrary”中不存在类型或命名空间“ClassNet45”newCoreLibrary.ClassNet45();我应该更改什么以使我的单元测试项目编译和测试特定的.NET4.5功能?.NETCore的VisualStudio工具中似乎存在错误。当您从另一个引用多框架项目时-VisualStudio仅采用列表中第一个列出的框架(在您的情况下为“netstandard1.0”)并将该引用项目视为单个目标。然而,编译器正确地处理了这个问题,尽管项目似乎构建正确——实际上并没有。另一方面,当您使用ClassNet45定义时——它似乎没有编译(VisualStudio显示错误)——它编译成功。似乎.NETCore的VisualStudio工具还不完整,但可能会在不久的将来修复此错误。以上是C#学习教程:HowtomakeVisualStudio2015xproject(project.json)referenceallthetopframeworksharedbydependentproject.如果对您有用,需要进一步了解C#学习教程,希望您多多关注——本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
