Este parece ser um problema não muito difícil e, depois de vários obstáculos, estou muito perto. Mas eu não consigo chegar lá.
Estou executando o Windows 7 na loja de desenvolvimento. Eu quero começar a usar o VS2010 para trabalhar em algumas coisas que não serão liberadas por algum tempo. Meu chefe disse que não há código beta na máquina de produção, mas eu poderia executar o VS2010 para este projeto SE eu pudesse fazê-lo em um ambiente isolado, como um PC virtual.
Bem, eu já usei o beta e RC do Win7 em VPCs antes, e foi dolorosamente lento por causa do ambiente VPC. Mas todos elogiaram o recurso de inicialização para VHD do Windows 7, onde apenas o disco é virtualizado e você está realmente executando no hardware. Deveria ser um pouco mais lento, mas nem de longe a penalidade de velocidade da VPC.
Eu passei um bom tempo colocando tudo do jeito que eu quero. Então eu imaginei, vou apenas clonar minha unidade de sistema usando Disk2VHD, e inicializar isso, e então instalar o VS2010. (Eu mantenho a maioria dos meus dados de usuário, incluindo todos os meus projetos, em uma partição separada, para que eles não precisem ser duplicados e ainda estejam disponíveis.)
Bem, eu tive algumas dificuldades com isso, principalmente devido ao fato de que eu estava usando uma versão antiga do Disk2VHD - (obtenha o mais recente se você for tentar.) Mas finalmente consegui inicializá-lo. (Scott Hanselman tem uma boa postagem no blog sobre inicialização para VHD).
Mas não era exatamente o que eu esperava ou esperava. O que eu esperava era que o VHD se tornasse a unidade C: e a unidade C: original (física) fosse oculta ou montada sob uma letra diferente e, portanto, isolada e protegida de quaisquer alterações.
O que você realmente obtém é que o VHD se torna a unidade D: E você inicializa a partir da unidade D:, MAS sua unidade C: original ainda está lá. Que é uma espécie de bem, EXCETO que o registro no VHD é um clone do registro na unidade C: e inclui muitas referências codificadas para C :. Então o resultado é que algumas coisas vêm de (e modificam) D: (o VHD), mas algumas coisas vêm de (e modificam) C :. (Se você abrir um prompt de cmd e fizer um SET para ver suas variáveis de ambiente, verá uma mistura de D: \ e C: \ paths.) Portanto, eu realmente não tenho um ambiente isolado. Mais importante,% ProgramFiles% ainda está definido como C: \ Program Files.
O que eu realmente preciso é de uma ferramenta que possa acessar os arquivos de registro nos arquivos VHD AS montados, não como entradas de registro, e fazer uma pesquisa global e substituir todos os C: \ em strings para D :. Eu não encontrei esse programa. (Eu tentei fazer isso com um programa chamado Registry Replace, mas, mesmo quando executado como administrador, há certas entradas que o registro não permite que você mude.)
Alguém sabe de um? Ou qualquer outra solução para o meu problema (além de começar do zero com um VHD limpo e instalar o Win7 e todos os meus programas nele.)?