访问dateTime.now时崩溃



以下C#代码在为.NET 4.5构建时,在Win 10 Dev Box上作为控制台应用程序运行正常:

static void Main(string[] args)
    {
        try
        {
            Console.Write(DateTime.Now.ToString());
        }
        catch (Exception Ex)
        {
            Console.Write(Ex.Message);
        }
    }

但是,当使用.NET 4.6.1的Win 7 Box运行时,它已经开始崩溃,显示以下消息:

    Unhandled Exception: System.Runtime.InteropServices.SEHException: External compo
    nent has thrown an exception.
       at System.TimeZoneInfo.TransitionTime.Equals(TransitionTime other)
       at System.TimeZoneInfo.CreateAdjustmentRuleFromTimeZoneInformation(RegistryTi
    meZoneInformation timeZoneInformation, DateTime startDate, DateTime endDate, Int
    32 defaultBaseUtcOffset)
       at System.TimeZoneInfo..ctor(TimeZoneInformation zone, Boolean dstDisabled)
       at System.TimeZoneInfo.GetLocalTimeZoneFromWin32Data(TimeZoneInformation time
    ZoneInformation, Boolean dstDisabled)
       at System.TimeZoneInfo.CachedData.GetCurrentOneYearLocal()
       at System.TimeZoneInfo.CachedData.GetOneYearLocalFromUtc(Int32 year)
       at System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(DateTime time, Boolean&
    isAmbiguousLocalDst)
       at System.DateTime.get_Now()
       at DateCrashTest.Program.Main(String[] args) in c:UsersSimonDocumentsVisu
    al Studio 2013ProjectsDateCrashTestDateCrashTestDateCrashTestProgram.cs:lin
    e 15

我有两个问题:

1)为什么异常没有被困?

2)为什么该程序在具有相同的.NET框架和同一时区的其他Win7盒子上运行正常?我已经检查了问题框上的.NET框架安装,似乎还可以。这个问题最近出现了 - 几天前没有发生。重新启动没有帮助。

问题不在您的代码中。该特定的Windows 7实例很可能有问题。正如其他人已经建议您可以运行sfc /scannow的那样,但也可能是损坏的注册表或其他内容。

我建议重新安装机器,因为它是该问题最简单,最快的解决方案。

相关内容

  • 没有找到相关文章

最新更新