На днях к нам обратился один из партнёров. Он попросил помочь разобраться с проблемой одного из его пользователей. Суть сводилась к тому, что с
Для начала запросили стандартную информацию о настройках программ и версии ПО. Вроде всё нормально, ни к чему не подкопаешься. Делать нечего — просим удалённый доступ к машине.
Зашли. Винда самая что ни на есть ХР, нашим ПО поддерживается. Симптомы проявляются, как и было сказано: щёлкнешь по ярлыку программы, она появляется в панели задач, а потом исчезает. Странно.
Пошли в реестр, зачистили настройки, которые хоть
Пошли смотреть лог инсталляции ПО — вдруг
Проблема на первом круге не решается. Переходим на второй круг — подключаем разработчиков.
Ставим DBGView, смотрим отладочную печать — видим ошибку, но в том месте, где её быть не должно в принципе. Ошибка возникает при инициализации компонентов, работающих с .NET. Страшная догадка: на машине не установлен .NET! Но такого быть не может — наличие требуется в самом начале инсталляции. Очень-очень-очень странно.
Решение проблемы переходит дальше по эстафете к разработчику, отвечающему за подсистему, которая использует .NET. Сидим, смотрим вместе с ним и ничего понять не можем. Вроде всё на месте. Всё должно работать. Очень-очень-очень-очень странно.
В некоторой тоске автор подсистемы начинает изучать свойства ярлыка, с которого запускается программа на этой машине…
Нашли! В закладке «Совместимость» стояло требование быть совместимым с Windows 95. Естественно, в те далёкие времена никакого .NET и в помине не было, поэтому программа и исчезала, обидевшись, что ей не дают работать в привычной обстановке.
Кто включил опцию совместимости, скорее всего, никто так никогда и не узнает. Вряд ли кто из пользователей в этом признается.