O nGen do conjunto do Sql Server está com falha porque uma tentativa anterior de nGening o assembly mscorlib do .Net Framework 2.0 falhou . Isso não tem nada a ver com .Net 4, então eu sugiro que você pare de olhar para o serviço ngen (2 e 4 usam seus próprios serviços).
Quanto a por que isso falhou - bem, não há uma quantidade enorme na net sobre isso. Eu encontrei isso nos fóruns do MSDN - Há algo sobre como confirmar se o mscorlib foi corretamente nGen'd - eu verifico isso.
Curiosamente, o Sql Server também é mencionado nesse segmento; Embora seja 2005 e eu acho que os assemblies da versão 10 que você está falando aqui são Sql 2008. Ainda assim, pode fornecer algo.
Mas, no fim das contas, se essa fosse minha máquina, eu faria:
-
Desinstale o .Net 2.0 e 3.0 e 3.5 (se estiver se sentindo bem também com a desinstalação 4.0)
-
Desinstale o componente do Sql Server que contém a montagem que está falhando na nGen.
-
Instale o .Net 3,5 sp1 redist; Certifique-se de que você também tenha o hotfix que é referenciado para mais adiante na página.
-
Aguarde que todo o nGening seja concluído antes de continuar.
-
Se você desinstalou o .Net 4, reinstale também agora.
-
Reinstale o componente do Sql Server removido na etapa 2.
Sim, eu sei, meio que 'desligue e ligue novamente' - mas acho que é melhor do que tentar evitar o problema. Se o mscorlib 2.0 não foi nGen'd corretamente, então o tbh .Net 2.0 não é realmente utilizável em seu estado atual. E como esse é um componente do SQL Server que está tentando nGen - apenas um mscorlib v2 do nGen'd funcionará com ele (nGen'd mscorlib v4 não funcionará).