.NET 3.0 Installation Error
Несколько дней назад писал, что никак не мог поставить VS 2008 на машину с XP SP2.
Как оказалось позже даже переустановка .NET 3.0 обрывалась на середине и ничем не могу побороть. Как известно, большинство советов в сети предлагают сносить какие-то бета компоненты и все что может сопутствоваьт ...
В этом порыве и был наполовин искоренен .NET с моей машины, но толку было мало ...
Полностью удалить не решался т.к. долго переустанавливать и потому решил вчитываться в логи. Они бали лаконичны как спартанцы:
[11/26/07,16:08:31] Windows Communication Foundation: [2] Error: Installation failed for component Windows Communication Foundation. MSI returned error code 1603
Но все же ошибка есть и значит где-то должна быть описанна.
Нашлась в 2х метх. Логи типа dd_wcf_ret*.txt - логи установки WCF и в EventLog.
Ошибка была следующая:
ServiceModelReg [16:08:29:122]: Uninstalling: Machine.config Section Groups and Handlers
ServiceModelReg [16:08:29:170]: System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)
at ....
Тут уж я совсем припух. Насколько помню System.ServiceModel имеет версию 3.0 и входит в состав WCF, который еще и не стоит как бы ... Ну и зачем инсталлятор его ищет ...
А ищет он его потому что 2.0 версия у System.ServiceModel была ... раньше, в бетах ... И именно такая версия "застряла" в machine.config!
Решением проблемы оказалось снести полностью
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
...
</sectionGroup>
Ну и само использование этой группы ниже в файле
<system.serviceModel>
<commonBehaviors>
<endpointBehaviors />
<serviceBehaviors />
</commonBehaviors>
</system.serviceModel>
Вот так и закончилась многодневная борьба с инсталлятором .NET.
Не понял почему так вышло с machine.config, но без ручного вмешательства точно не обойтись в такой ситуаци... =(