【发布时间】:2016-07-07 05:25:00
【问题描述】:
假设您有一个如下所示的 .NET Core 项目:
"frameworks": {
"net40": {},
"dotnet5.1": {}
}
这是你的 C# 代码:
public class Foo
{
public static void Blah()
{
#if DOTNET5_1
DoSomething();
#elif NET40
DoSomethingElse();
#endif
}
}
现在,在 Visual Studio 中,当您查看 .cs 文件时,#if 部分之一将变灰 - DoSomething 或 DoSomethingElse。这是它在我的笔记本电脑上的显示方式:
是否可以让 VS 在目标平台之间“切换上下文”,以便您可以查看将为特定平台编译的内容?例如,我可能想在实际构建解决方案之前检查每个框架的任何红色波浪线。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
顺便说一句,你为什么要定位
net40?您的类库将与针对完整 .NET Framework 运行的 .NET Core 不兼容,因为受支持的最低版本是 .NET 4.5.1。 github.com/dotnet/corefx/blob/master/Documentation/architecture/… 您至少需要多目标net451和net40才能同时支持 4.0 和 (ASP).NET Core 对抗完整的 .NET Framework/Mono -
@Tseng 返回您链接的文档。
dotnet5.1将负责 .NET 4.5、Windows 8 和大多数其他平台。net40将负责 .NET 4.0。 -
@JamesKo 由于大多数同步方法已被删除以支持异步替代方案(在套接字等中),因此针对 .NET 4 将是棘手的。 .NET 4 也即将结束,.NET 4.5.2 是新的基线。
-
@LexLi 是的,但对于不需要异步支持的简单库 (like this),针对 .NET 4 并不是什么大问题。
标签: c# .net visual-studio visual-studio-2015 asp.net-core