Como habilito a edição de arquivos no modo de depuração do Visual Studio?

144

Existe uma maneira de habilitar a edição de arquivos durante a depuração no Visual Studio? Desmarquei a caixa de seleção "Exigir que o arquivo de origem corresponda exatamente à versão original". Não faz diferença. Eu tenho que parar a depuração para editar arquivos. Muito irritante. Eu ativei Editar e continuar. Mesmo resultado. Desativei Editar e continuar - Mesmo resultado.

tom7
fonte
Não vi que você editou sua pergunta. Você pode corrigir isso com uma reinstalação rápida.
Secko
12
@Secko Não existe tal coisa como um "reinstalação rápida" quando estamos a falar sobre o Visual Studio ...
Zero3
@ Zero3 Havia no meu tempo, há cerca de 16 anos, quando eu o estava usando por volta de (int) 1999 - (int) 2000. Não o utiliza há um (longo) tempo.
Secko
O verdadeiro problema aqui é que a configuração 'Editar e continuar' do Visual Studio não permite editar e continuar . Pelo contrário, é um recurso estranho que permite editar o código e, em seguida, altera o código em execução para corresponder à sua edição e depura a partir daí. Mesmo se isso fosse útil, raramente funciona. Deveria ter sido chamado de algo como 'editar e recompilar em tempo real'. Desativá- lo permite que você realmente edite seu código enquanto ainda depura o código que você compilou.
MGOwen

Respostas:

234

Tanto quanto sei, você pode desmarcar a caixa de seleção "Editar e continuar".

Ferramentas -> Opções -> Depuração -> Editar e continuar> Ativar Editar e continuar (desmarque)

Secko
fonte
60
Essa foi a solução para mim - não tenho idéia de por que a verificação da ONU "Editar e continuar" permitiria que eu editasse ... parece contra-intuitivo. Enfim, eu marcaria isso como a resposta.
Sam Schutte
7
Contra-intuitivo, mas eficaz.
Milne 21/05
2
Isso reage de maneira diferente se a camada de negócios for dividida em um projeto separado na solução. Antes de ser dividido, eu era capaz de editar as classes durante a depuração sem problemas. Infelizmente, esta solução não resolveu para mim nesta situação (estou usando VS2013)
Radderz
18
No Visual Studio 2015, encontrei essa configuração na parte inferior de Debugging-> General.
Zero3
13
Se você estiver tentando fazer isso, mas "Ativar edição e continuar" estiver acinzentado, simplesmente pare a depuração e volte para as opções.
Ravvy
19

Expandindo a resposta correta de Reed.

Quando no modo de depuração, a edição de um arquivo está usando um recurso conhecido como Editar e Continuar (comumente abreviado ENC). Isso permite que os usuários alterem seu programa enquanto ele está sendo executado no depurador.

Quando a ENC está ativada, os usuários têm permissão para realizar um conjunto limitado de edições em seus arquivos. A próxima ação que continua a execução do programa (F10, F5, etc ...) fará com que as edições sejam aplicadas ao programa em execução. Se isso ocorrer, a execução do programa continuará com o novo código aplicado.

O depurador não permite edições no arquivo se o ENC não estiver ativado.

Existem alguns motivos pelos quais a ENC pode estar desativada no seu computador

  • Certos perfis não ativam a ENC por padrão e devem ser ativados explicitamente
  • Você pode estar executando em um sistema operacional de 64 bits e ter o aplicativo .Net definido como "Qualquer CPU". O ENC não está disponível em 64 bits (limitação do CLR). Você precisará definir o aplicativo de volta para x86 para que a ENC funcione
JaredPar
fonte
8
E se você não se importa com o Editar e continuar e apenas deseja codificar enquanto o aplicativo está sendo executado, para que você possa ver o que precisa ser feito enquanto o faz? É absolutamente irreal que o VS imporia essa restrição artificial. Não é como se fosse necessário ler os arquivos de origem enquanto estiver em execução. Não há nenhuma razão técnica para ter que bloquear os arquivos de origem. O Xcode não tem nenhum problema em permitir que você codifique enquanto o aplicativo está sendo executado. As alterações não se aplicam até a próxima execução. Não há realmente nenhuma maneira de fazer isso no VS?
precisa saber é o seguinte
1
Se eu desabilitar Editar e Continuar, ele poderá editar arquivos .cs enquanto o aplicativo estiver em execução, mas ainda bloqueará os arquivos .xaml. Estou procurando uma maneira de desativar completamente esse bloqueio absurdo.
precisa saber é
7
Nem me permite adicionar um arquivo ao projeto enquanto o aplicativo está em execução! Não estou brincando, 20 a 30 vezes por dia, tento fazer algo e o VS o impede completamente. Após um breve momento "wtf", percebo que o aplicativo está depurando e preciso interromper o que estava fazendo, interromper o aplicativo e tentar novamente. Eu não posso trabalhar nessas condições e estou realmente surpreso que as pessoas não estejam em dúvida sobre isso. Isso realmente está matando minha produtividade e me levando até a parede. Tem que haver uma maneira de consertar isso!
precisa saber é o seguinte
1
@ devios1 Algo que costumo fazer é executar sem depuração (ctrl + f5), o que é bom, desde que você não precise de pontos de interrupção nem nada.
binki
@ devios1 Mesmo. Espero que alguém (talvez eu) encontre tempo para concluir esta extensão. github.com/AndreasFurster/pause-edit-and-continue
Paul
8
  • Marque a ONU "Ativar edição e continuar" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Crie seu aplicativo.
  • Executá-lo.
  • Pare com isso.
  • RE marque "Ativar edição e continuar".
  • Crie seu aplicativo.
  • Executá-lo.
  • Tente editar os arquivos enquanto estiver depurando agora.

Isso funcionou para mim. Acredito que possa haver algum problema de bug ou sincronização com o Visual Studio 2015.

Francois Botha
fonte
1
Caro downvoter, é uma boa prática deixar um comentário por que você está recusando a resposta.
Francois Botha
Isso não resolveu para mim, no entanto, a resposta mais votada abaixo foi.
Kairan
6

Você precisa habilitar Editar e Continuar .

Reed Copsey
fonte
2
Além disso, você precisa estar em um ponto de interrupção ou clicar no botão de pausa (Quebrar tudo).
217 McAden
@ marcc: E muitas outras coisas, e é por isso que apontei para a documentação. Para obter a lista completa das alterações não suportadas, consulte a seção "Cenários não suportados" neste local: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Reed Copsey em
4
A resposta Seckos (melhor classificada) funcionou para mim (VS2015) e é exatamente o oposto da sua resposta.
alrts
6

Do MSDN

Para ativar / desativar Editar e continuar

  • Abra a página de opções de depuração (Ferramentas / Opções / Depuração). Rolagem

  • até a categoria Editar e continuar. Para ativar, selecione Ativar edição

  • e continuar a caixa de seleção. Para desativar, desmarque a caixa de seleção. Nota. ...

  • Clique OK.

Dilaksha A
fonte
5

geralmente é possível editar um arquivo durante a depuração quando você atinge um ponto de interrupção (e somente então).

Porém, existem algumas restrições: -se seu novo código deve ser compilado -não é possível alterar o código em uma função que contém expressões lambda

Johannes Rudolph
fonte
4

Para mim, este link Desativar o IntelliTrace funcionou.
Vamos para

Ferramentas> Opções> IntelliTrace> (desmarque) Ativar IntelliTrace

Ou Depure> Opções> IntelliTrace> (desmarque a opção Ativar IntelliTrace

insira a descrição da imagem aqui

Muhammad Ashikuzzaman
fonte
2

Se você tiver o recurso Editar e continuar ativado e estiver usando o C #, poderá editar um arquivo apenas se o depurador tiver parado por meio de um ponto de interrupção ou se você invadir manualmente o aplicativo por meio de "Interromper tudo". Você ainda não poderá editar alguns arquivos, por exemplo, arquivos xaml em um aplicativo WPF, mas deve resolver a maioria dos problemas.

Mark Vicuna
fonte
1

Se sua origem for originada de uma dll descompilada, observe que os decompiladores podem adicionar uma instrução IgnoreSymbolStoreSequencePoints ao assemblyinfo.cs:

[assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Essa linha deve ser removida para carregar o arquivo pdb, fazendo com que a edição e a continuação funcionem.

Turbo
fonte
1

Remover a marca abaixo da opção funciona para mim

Ferramentas> Opção> Depuração> Geral> Habilitar Editar e Continuar

insira a descrição da imagem aqui

* Nota: Em alguns sistemas de outros desenvolvedores, a adição deste tick executou o truque.

Pranav Labhe
fonte
1

Eu tentei dessa maneira e está funcionando para mim. Vá para Arquivo CSProj ou VbProj -> Escolha Servidor de Desenvolvimento asp.net / IIS Express -> Depuradores-> Ative Editar e Continuar-> Salvar e executar.

insira a descrição da imagem aqui

Prosun Chakraborty
fonte