You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中C# Interactive无法访问DateTime.UnixEpoch的问题

C# Interactive无法访问DateTime.UnixEpoch的原因解析

问题场景

在目标框架为.NET 7.0的常规项目代码中,DateTime.UnixEpoch可以正常调用,但在Visual Studio 2022 17.7.3的C# Interactive环境中使用该字段时,会触发CS0117编译错误,提示'DateTime' does not contain a definition for 'UnixEpoch'。

复现代码(C# Interactive)

> double timeStamp = 1693620016;
. DateTime dateTime = DateTime.UnixEpoch;
. dateTime = dateTime.AddSeconds(timeStamp);
. Console.WriteLine(dateTime.Date);

报错信息

(2,30): error CS0117: 'DateTime' does not contain a definition for 'UnixEpoch'

核心原因

DateTime.UnixEpoch是**.NET 6及以上版本才引入的API**,而C# Interactive窗口默认使用的运行时框架版本通常低于.NET 6(比如绑定.NET Framework或.NET Core 3.1等旧版本)。即使当前项目的目标框架是.NET 7,C# Interactive并不会自动同步项目的框架设置,仍会使用自身默认的低版本运行时,导致无法识别该新API。

验证方法

在C# Interactive窗口中输入以下代码,即可查看当前使用的框架版本:

> Console.WriteLine(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription);

如果输出为.NET Framework 4.8.xxx或.NET Core 3.1.xxx这类低于.NET 6的版本,就可以确认是框架版本不匹配导致的问题。

解决办法

  • 方法一:切换Interactive的目标框架
    打开Visual Studio的「工具」→「选项」→「环境」→「预览功能」,勾选“使用.NET SDK风格的项目系统的C# Interactive”(部分Visual Studio版本有此选项),开启后Interactive会同步当前项目的目标框架。

  • 方法二:手动指定框架加载
    在C# Interactive窗口中先执行以下命令,手动加载.NET 7.0的程序集:

    > #r "net7.0"
    

    加载完成后再执行原代码,即可正常访问DateTime.UnixEpoch。

内容的提问来源于stack exchange,提问作者Ivang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:44:56