【问题标题】:Debugging future dates using Visual Studio 2019使用 Visual Studio 2019 调试未来日期
【发布时间】:2021-08-13 01:47:25
【问题描述】:

我有一种情况需要调试在未来某个日期运行的进程。这是现有的遗留代码,在其代码中的多个位置使用 DateTime.Now (C#) 和 GETUTCDATE() (T-SQL)。我们必须更改 Windows 10 上的日期和时间,以测试代码在未来日期中的表现。

我们已尝试阻止互联网访问,但该应用程序使用需要互联网访问的第 3 方 API。在 Visual Studio 2019 检查过时的许可证之前,我们通常需要大约 1 小时的调试时间。

最大的问题是我们在调试过程中遇到了 Visual Studio 2019 的许可问题。我们被淘汰了,不得不重新开始。这个过程很长,通常需要大约一个小时才能到达调试位置。

有没有人知道一个开关或命令行参数来临时允许我们修改系统日期,而无需因许可证过期而关闭 Visual Studio 2019?或者任何人尝试过调试的技术。

提前感谢您的帮助。

【问题讨论】:

  • 大声笑这很有趣,我希望你能找到答案。有意思,我也想知道答案……
  • 您可以尝试模拟 DateTIme.Now 以使用您自己的自定义方法返回未来日期
  • 您可以通过在 hosts 文件中阻止 Visual Studio 在线检查来阻止它
  • 你知道我需要阻止什么主机吗?或者使用什么工具来检查这些主机?我知道这是非法的,因为它可以为盗版打开大门。然而,这种情况并非如此。而是需要通过现代许可检查来适应遗留代码的日期调整。
  • 使用 VS Remote Debugger 在不同的 PC 上运行它怎么样

标签: c# sql-server visual-studio debugging


【解决方案1】:

你说它是遗留代码,但希望你能改变它。

一种选择是将DateTime.Now 的所有用法替换为DateTimeEx.Now,并添加如下类:

public static class DateTimeEx
{
    public static TimeSpan Offset { get; set; }
    public static DateTime Now => DateTime.Now + Offset;
}

您可以将Offset 设置为您喜欢的任何值以进行测试。

【讨论】:

    【解决方案2】:

    评论太多了。

    您可以尝试安装一个名为Fiddler 的有用调试工具。

    在 Fiddler 运行的情况下,在 Visual Studio 运行时监控您的 http 流量,以查看它正在联系和通信的地址。您应该在 Fidder 的 Inspectors 选项卡中看到类似的内容

    一旦您确定或怀疑它在做什么,请在记事本中打开您的 Windows 主机文件(通常是 C:\Windows\System32\drivers\etc\hosts) 并为每个 URL 添加条目,例如

    0.0.0.0 dc.services.visuastudio.com

    暂时阻止它连接到该特定站点。

    完成后删除或注释掉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-04
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多