使用 Visual Studio 2019 调试未来日期
Posted
技术标签:
【中文标题】使用 Visual Studio 2019 调试未来日期【英文标题】:Debugging future dates using 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 上运行它怎么样
【参考方案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
暂时阻止它连接到该特定站点。
完成后删除或注释掉。
【讨论】:
以上是关于使用 Visual Studio 2019 调试未来日期的主要内容,如果未能解决你的问题,请参考以下文章
调试时 Visual Studio 2019 未启动控制台应用程序窗口
在 Visual Studio 2019 中使用的 Razor 视图未更新
“运行|调试”按钮未出现在 Visual Studio Code Java 程序上
Xamarin 项目未显示在 Visual Studio Android 模拟器上