Делюсь интересным багом, грабли которого M$ услужливо разложила в системе.
Код самый простой — тупо вывести последнюю модификацию каталога:
var di = new DirectoryInfo(@"C:\Windows\System32");
Log.Trace("Modif: " + di.LastWriteTime);
И код в принципе работает! Но... в одной проге он выдаёт "20/3/2023 09:58:51", а в другой — "24/2/2023 02:02:05"!!!
Т.е. это даже не игры с часовым поясом, а отставание на целый месяц! Откуда такая разница?
| Всё просто — "медвежья помощь" мелкософта! |
| Оказывается, одна прога была с prefer 32 bit, а другая без (обе AnyCPU). В результате, вместо нормального C:\Windows\System32 дридцатидвухбитной проге венда подсовывала c:\Windows\SysWOW64 ! Спасибо, обезьяны! Два часа отладки долой. |
| |
Я не знаю, насколько "переход на 64 бита" был тяжел для мелкософта, но вот это "c:\Program Files\", "c:\Program Files (x86)\", "C:\Windows\System32", "c:\Windows\SysWOW64" — маразм чистой воды и ГРАБЛИ на всю оставшуюся жизнь. Только придурок мог так "изящно" замаскировать венду для 32-битных прог.
Короче, программируйте и оглядывайтесь, не прилетит ли вам очередным граблями в лобешник!