История одного Upgrade с Vista x64 на Windows 7 x64, а так же Win7 vs WSUS и WPF vs NVIDIA
- modified:
- reading: 5 minutes
Данный пост включает в себя три истории: а) немного о том, как обновить Vista на Windows 7; б) о текущих проблемах Microsoft Windows Server Update Services и Windows 7; в) О новом баге драйверов NVIDIA, который проявляется в WPF приложениях.
UPGRADE
Я уже говорил в своем блоге, что Vista x64 Ultimate может обновляться на Windows 7 x64, и так как я в некоторой мере ленив и мне не хочется тратить время на отдельную установку Windows 7, установку ПО и настройку системы, а так же переноса параметров – то я решил воспользоваться данной возможностью (честно – первый раз, когда я пользуюсь возможностью обновления одной ОС на другую).
Реально – проблем, связанных именно с тем, что я обновлял операционную систему а не устанавливал отдельно – я не встретил, был только маленький пустяк, о котором ниже. Обновление заняло у меня около 2-х часов, точнее у меня оно заняло 5 минут, а у компьютера около 2-х часов. Первое с чем встречаешься – это проверка установленного ПО на вашей операционной системе и предупреждения инсталлятора о том, какие продукты нужно удалить, чтобы была возможность продолжить установку, а какие возможно не будут работать после обновления. В моем случае мне пришлось удалить Alcohol 120% (который и так не работал, потому что был в trial) и Virtual PC 2007 SP1 (потому что для Win7 выходит новый Virtual PC – пока что в стадии RC). Так же инсталлятор поругался на SQL Server 2008 (это уже известная проблема – ругается и при установке на Win7, но работает), что может быть не будет работать (чего не случилось), а так же написал о том, что всякие Vista Ultimate Extras так же не будут работать.
Во время обновления компьютер сам перезагружался пару раз вроде, зашел я на свой компьютер через пару часов уже через RDP. На следующий день я пришел и увидел еще окошко для ввода серийного номера, и все – вот и весь upgrade.
Во время обновления я заметил 5 пунктов по которым происходил апгрейт – одним из них копирование всего что есть в backup (файлы приложений, настройки и т.п.), а другой это копирование из бекапа всего по необходимым местам новой ОС. То есть реально Windows 7 ставиться пустой, а затем уже происходит копирование в него всех сохраненных настроек и программ.
Маленький пустяк, который я встретил после обновления, и в котором виновато именно то, что я обновлял систему – на дисках остались папки с именами $INPLACE.~TR и $WINDOWS.~Q. Их можно просто удалить.
Теперь о проблемах, которые я встретил после, и в которых уже нет вины того, что систему я именно обновлял а не устанавливал с нуля.
WSUS и Windows 7
Многие в своих компаниях, да и дома используют локальный Microsoft Windows Server Update Services. Так как Vista у меня была настроена получать обновления оттуда, то и WIndows 7 полез за ними туда же, и тут я начал видеть такие вот окна:
Первый Code ошибки, который я получил был 0x8007000D. Вообще посмотреть подробный лог об ошибках можно в каталоге Windows в файле WindowsUpdate.log, а посмотреть, что значат коды ошибок тут: Windows Update Error Codes, как видите данный код ничего умного не говорил, в логах тоже было не много информации. Но все оказалось немного проще – помогло обновление текущего WSUS версии 2.0 SP1 до версии 3.0 SP1 (обновление WSUS было достаточно продолжительным). Windows 7 можно выбрать во WSUS даже версии 2.0 SP1, поэтому наш шаг был просто пробой, которая помогла.
Следом правда мы уже все, со всех компьютеров и любых операционных систем увидели ошибку с кодом 0x80244019, решение было найдено моментально, всего то при апдейте пропала виртуальная директория SelfUpdate на сайте WSUS, которая должна быть направлена на каталог C:\Program Files\Update Services\Selfupdate.
Последнюю ошибку которую я увидел – это 0x80072EE2, но тут мне уже помогла помощь самой Windows, нужно было добавить исключение в Firewall в Advanced Settings -> Outbound Rules. И вот почти что финиш я увидел картинку:
В логах WSUS правда за мной значилась операционная система Windows Vista Ultimate Edition. Для того, чтобы поддерживался клиент Windows 7 – нужно ставить WSUS 3.0 SP2, который еще в статусе RC, либо обновляться с официального сайта Microsoft, мы пока не стали обновляться до SP2, пока он находится в состоянии RC, подождем.
WPF и NVIDIA
Другая проблема, которая возникла – это проблемы с WPF приложениями, как оказалось – проблема не только проявляется в Windows7. В Win7 я ее заметил, так как обновление мне поставило более свежие драйверы на мою встроенную видеокарту GeForce 7100.
Сначала о самой проблеме – она возникает во время использования всяческих Effects для отображения WPF приложений, в моем случае это был DropShadowEffect. Заметить данную проблему легко – у вас не отображаются контролы, на которые вы наложили эффекты, либо отображаются, но как-нибудь наполовину или моргают или еще что то вроде того.
Протестировать данный bug можно очень легко, создайте WPF приложение и поместите на него следующий набор контролов (данный тест я нашел на одном из форумов, пока искать суть проблемы):
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Canvas TextBlock.FontSize="14">
<Border Margin="4" Background="White" BorderBrush="Black" BorderThickness="1">
<Grid>
<TextBlock Text="Without Effect" Margin="0.5" Background="LightGoldenrodYellow"/>
</Grid>
</Border>
<Border Canvas.Top="30" Margin="4" Background="White" BorderBrush="Black" BorderThickness="1">
<Border.Effect>
<DropShadowEffect Color="Black" ShadowDepth="4" BlurRadius="8" Opacity="0.5"/>
</Border.Effect>
<Grid>
<TextBlock Text="With Effect, Aligned" Margin="0.5" Background="LightGoldenrodYellow"/>
</Grid>
</Border>
<Border Canvas.Top="60.5" Margin="4" Background="White" BorderBrush="Black" BorderThickness="1">
<Border.Effect>
<DropShadowEffect Color="Black" ShadowDepth="4" BlurRadius="8" Opacity="0.5"/>
</Border.Effect>
<Grid>
<TextBlock Text="With Effect, Misaligned" Margin="0.5" Background="LightGoldenrodYellow"/>
</Grid>
</Border>
</Canvas>
</Window>
Попробуйте найти разницу между средним и последним Border и их содержимым (кроме Canvas.Top). Верно никаких, но результат потрясающий:
Слева вид в дизайнере, справа – запущенное приложение. Второго Border просто нет. На машинах, на которых данного бага не будет – увидят все три контрола. Данная ошибка уже присутствует на http://connect.microsoft.com, но виноваты в ней новые драйверы NVIDIA.
P.S.
Windows 7 мне определенно нравится. Дома все еще ленюсь обновить Windows 7 RC до RTM (Вроде и так хватает) :)