“Mudanças a aplicativos de 64 bits não são permitidos” quando a depuração no Visual Studio 2008
-
19-09-2019 - |
Pergunta
Estou usando o Visual Studio 2008, C #. Eu tento usar edit-e-continuar (editar o código durante a depuração), e recebo esta exceção:
"Alterações 64-bit aplicativos não são permitidos"
Por que isso? Existe uma solução?
Solução
Editar e continuar não é suportado em 64 bit aplicativos no nível CLR então não há nenhuma maneira para Visual Studio para implementá-lo também.
A maneira mais fácil de contornar este problema é alvejar seu aplicativo para x86 fichas. Isto fará com que a sua operação em modo Wow64 como um processo de 32 bits e, portanto, ser capaz de ENC. Você pode fazer isso fazendo o seguinte
- Botão direito do mouse sobre a aplicação .EXE e escolha Propriedades
- Vá para o Desenvolver Tab
- Alterar caixa de combinação de plataforma de destino para x86
Outras dicas
Pessoalmente, o que eu realmente quero é stop-and-edit não edit-e-continuar.
Então, eu simplesmente desligar Ferramentas / Opções / depuração / Editar e continuar.
Se o fizer, inibe que a caixa de diálogo traquinas de me importunando sobre um recurso ausente Eu não queria, em primeiro lugar: -)
O "Editar e continuar" característica para 64-bit código será suportado no Visual Studio 2013.
Como jcopenha disse que não há edit-e-continuar em x64 ainda. A versão atual do CLR de 64 bits não apoiá-lo. No entanto, há um trabalho em torno.
Você pode encontrá-lo no Bug Babble pós .
Você precisa compilar seu gerenciado de montagem com uma CPU alvo de x86. Isto fará com que o CLR de 32 bits a ser usado ao invés do CLR 64 bits.
Para um projeto VB, clique direito sobre o projeto e vá para propriedades de compilação / Opções avançadas de compilação / / target CPU e configurá-lo para "x86". Para um # Projeto C, clique direito sobre o projeto e ir para Properites / Construir / plataforma de destino e defina como "x86".
Hope isso ajuda.
A edição-e-continuar recurso simplesmente não foi implementado em x64 ainda. Eu não ouvi nenhuma atualização sobre quando pretende fazê-lo ainda.
Veja também Por que não Editar e continuar trabalho sobre o CLR x64?
Eu tive a mesma mensagem de erro no MS Visual C # Express 2010. Foi engraçado, porém, porque o pedido foi definitivamente configurado como um projeto x86!
No final, foi a seguinte linha faltando no meu arquivo .csproj:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
...
<PlatformTarget>x86</PlatformTarget>
...
</PropertyGroup>
Eu não sei por que ele estava faltando ... Eu acho que MS Visual C # Express 2010 não é livre de erros;)
-
quando Alvo CPU é definido como 'Qualquer CPU', ele será executado como um aplicativo de 32 bits no Windows de 32 bits, e aplicação de 64 bits no Windows de 64 bits. No entanto visual studio não permite recurso 'edit-e-continuar' para a aplicação de 64 bits.
-
A fim de debug 'fluência' na máquina de 64 bits, que pode:
a) conjunto 'alvo CPU' para 'Qualquer CPU', mas marque a caixa 'Prefere 32bit'.
b) ou, set 'Alvo CPU' para 'x86'
Muito importante: tanto a opção requer o 'Ativar otimizações' caixa para ser desmarcada
.Infelizmente, Editar e continuar não é suportado em 64-bit. Na verdade, se você tentar usar Editar e Continuar ao depurar um aplicativo de 64 bits, você recebe a seguinte mensagem de erro: "Alterações para 64-bit aplicativos não são permitidos" Muitos usuários podem não estar cientes de que, por padrão, quando você cria um C # ou VB projeto no Visual Studio 2008, a "Plataforma" para o projeto é definido como "Qualquer CPU". Isto significa que se você executar o aplicativo em um sistema operacional de 32 bits, o aplicativo será executado como um processo de 32 bits e da mesma forma, se você executar o aplicativo em um sistema operacional de 64 bits, a aplicação será de 64 bits. A conseqüência "Qualquer CPU" é que quando você tentar depurar seu aplicativo em um sistema operacional de 64 bits, você não será capaz de usar o editar e continuar recurso.
No entanto, há uma solução alternativa. Durante o desenvolvimento, você pode definir a plataforma para o seu projeto de 32 bits que significa que seu aplicativo será executado como um processo de 32 bits mesmo em um sistema operacional de 64 bits. Isto é conhecido como WOW64 ou "Windows on Windows" que basicamente significa que você pode executar um aplicativo de 32 bits em um sistema operacional de 64 bits.
Então, como você definir a plataforma para o seu projeto para 32 bits? Bem, você precisa criar uma plataforma de 32 bits usando o Visual Studio Configuration Manager. Aqui está uma pequena explicação passo a passo.
Primeiro, abra o diálogo "Configuration Manager" de construção -> Configuration Manager. A caixa de diálogo Configuration Manager é mostrado abaixo.