O Módulo a seguir foi criado com otimizações ativadas ou sem informações de depuração


139

Não consigo me livrar disso no meu projeto da web do VS 2008 durante a depuração. Eu verifiquei se ele está no modo de depuração no projeto não Web em questão e está no Active (Debug). Excluiu todos os itens da minha pasta temporária do .NET 2.0 no Windows. Não tenho certeza do que mais fazer aqui.

Respostas:


187

Tente desativar "Ativar apenas meu código" em Ferramentas / Opções / Depuração / Opções.


Eu fiz isso e funcionou. Consegui usar pontos de interrupção e percorrer o código. Eu não entendo. Por que funcionou? (I foi a depuração de um módulo de C ++ gerenciado referenciado por um Win Service usando VS2010)
TZUP

Acabei de ter esse problema e sua solução funcionou para mim. Obrigado!
Colin O'Dell

5
Funciona, mas pode causar alguns efeitos colaterais indesejados ao depurar: blogs.devsource.com/devlife/content/net_general/…
user276648

2
No VS2010, essa caixa de seleção está em Depuração> Opções e configurações e, em Depuração> Geral
Cookie

Isso funciona devido à reconstrução das opções? Qual é o acordo. Eu resolvi o problema, mas por quê?
precisa saber é o seguinte

83

Eu tive o mesmo problema e descobri que não estava produzindo minhas informações de depuração no meu build. Se você clicar com o botão direito do mouse no projeto e ir para 'propriedades', selecione a guia 'compilar', na parte inferior da página há um botão 'Avançado ...' que exibirá sua configuração para você exibir informações de depuração. Defina como 'cheio' e o erro deve desaparecer.

insira a descrição da imagem aqui


1
Essa é a resposta correta. Você deve enviar informações de depuração "completas" quando desejar depurar seu aplicativo localmente no modo de desenvolvimento. Você deve fazer isso em vez da resposta "Ativar apenas meu código", pois essa resposta pode ter efeitos colaterais indesejados (conforme observado acima).
Tod Thomson

1
@ Thom Thomson, não sei por que você afirma que esta é a resposta correta, pois vejo a mensagem agora enquanto depurava meu aplicativo da web e tentava entrar em uma biblioteca de classes, muito semelhante à configuração descrita na pergunta. Minha configuração de Informações de depuração está cheia e não tenho motivos para acreditar que tenha sido diferente.
R. Schreurs 01/08/13

1
@ R.Schreurs Tentei de tudo nesta página e a única coisa que funcionou para mim foi essa resposta. Se isso não funcionar para você, sinta-se à vontade para tentar outra coisa aqui / fornecer uma resposta própria.
Tod Thomson

É um erro da Microsoft. Não diga "deveria". A menos que você está dizendo "O erro deve ir embora, mas é Microsoft para que você deve repensar sua vida"
user1566694

24

Acabei de encontrar esse problema e rapidamente decidi que as outras respostas postadas não se aplicavam a mim.

desabilitar

Eu sou o proprietário do projeto e sei que ele foi construído com informações de depuração e também sem otimizações. Além disso, nunca fico feliz escolhendo a desativação de um aviso como minha primeira escolha. Ocultar / ignorar esse aviso pode se tornar um problema em uma futura sessão de depuração.

Como isso só começou a ocorrer depois que eu assinei o assembly , isso me deu uma dica da minha solução rápida: remova temporariamente o nome forte da minha DLL (e consumindo EXE). Voila! Problema resolvido.

Uma solução melhor e de longo prazo pode ser a adição de uma ação pós-compilação para atualizar o GAC, para que ele tenha a versão mais recente da DLL assinada.

Mas, por enquanto, estou feliz em seguir em frente com esse desvio e continuar trabalhando no problema que me levou a esta sessão de depuração.


4
Eu estava em uma circunstância semelhante a você, mas segui o caminho mais fácil ... Desinstalei o programa que colocou essa DLL no GAC, porque era apenas a versão mais antiga do que eu estava depurando.
SeeMoreGain

2
Também marque +1 por recomendar a correção da origem do problema, em vez de apenas ativar uma solução alternativa, como todas as outras que sugerem desmarcar "Habilitar apenas meu código"
SeeMoreGain

17

resolvido. Excluídas todas as ocorrências (todos os projetos) da DLL em questão.


1
Fechei todas as sessões do VS / VWD em que os projetos referenciados e minha solução ativa estavam abertos. Então eu apaguei TODAS as instâncias do problema dlls e seu pdbs associado. Em seguida, apaguei tudo no local do site de depuração temporária na estrutura do framework .NET (para este projeto, eram os arquivos ASP.NET C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary [myWebsite]). Isso me deu um erro 'arquivo em uso' em uma das versões anteriores até eu fechar o VWD. Em seguida, reabri o projeto e corrigi todos os erros e avisos pendentes no código do projeto. Somente então o erro desapareceu.
BH

14

O VS2012, limpo e reconstruído, corrigiu o problema para mim. "Propriedades" -> "Compilar" -> Otimizar código está desmarcado. "Propriedades" -> "Compilação" -> "Avançado" -> Informações sobre depuração: total


precisamos alterar as configurações
kbvishnu

Isso funcionou para mim ao depurar um suplemento do Visual Studio 2010. Anteriormente foi definido como none.
Sabuncu

Não funcionou para mim, mas depois de excluir as pastas bin e obj, limpar e reconstruir a solução funcionou novamente :)
QMaster


7

Adivinhando o VS 2008 não está reconstruindo a dll corretamente.

1) Exclua todas as ocorrências da dll

2) Reconstruir solução

E isso deve consertar.


Excluí o diretório bin do meu aplicativo da web seguido de reconstruir tudo. Isso consertou!
Captain Sensible

6

Verifique suas opções de configuração de compilação. Verifique se as otimizações estão desativadas e se a constante DEBUG está definida.


A compilação está selecionada e as otimizações estão definitivamente desativadas.

6

Se tudo mais falhar, tente renomear o nome do Assembly nas propriedades do projeto. Isso corrigiu o problema para mim.


Depois de passar horas e vasculhar a internet tentando tudo que eu encontrei, isso funcionou. Algo deve ser armazenado em cache?
Chris R

6

Também recebo esse problema, por algum motivo, isso aconteceu 3 ou 4 vezes; Eu acho que deve ser um bug / hick up do Visual Studio 2005 (ou pelo menos minha instalação).

Isso sempre funcionou: para corrigi-lo,

  1. Clique com o botão direito do mouse na minha solução e clique em Propriedades.
  2. Abra o Gerenciador de Configurações.
  3. Selecione Depurar no menu suspenso (se ainda não estiver selecionado).
  4. Desmarque BUILD. Em seguida, verifique novamente.
  5. Reconstrua a solução.

4

Ferramentas> opções> Depuração> Símbolos> Especificar módulos excluídos parecem que, se a dll ou o exe na lista de módulos excluídos


3

Pelo menos para aplicativos que não são da Web, isso funciona:

De: http://www.stellarpc.com/articles/board.aspx?id=40

2 - Permitir depuração ...

Devido à natureza em que um dos assemblies foi criado em seu aplicativo, você precisará alterar algumas configurações para permitir que o código seja tratado pelo Visual Studio Debugger.

Clique com o botão direito do mouse em qualquer projeto em questão no Solution Explorer e selecione 'Propriedades'. Isso abrirá o painel de propriedades do projeto, dando-nos acesso a muitas opções para nossos projetos. Navegue até a guia 'Concluir' (ou 'Construir' se você estiver em um ambiente C #) e selecione 'Opções avançadas de compilação ...' na parte inferior da tela. Isso nos apresenta um prompt que possui duas áreas de interesse principais:

1) Otimizações - desmarque 'Ativar otimizações'

2) Gerar informações de depuração - verifique se a opção está definida como 'Completo'


Interessante ... Tenho meus projetos configurados dessa maneira e, mesmo com essa configuração, a mensagem ainda está aparecendo. Portanto, esta ainda não é a solução definitiva
júnior Mayhé

3

Eu tive esse problema com uma solução em uma determinada pasta, mas se a mudei para outra pasta ou por outras pessoas, não recebi a mensagem. Fiz a limpeza, reconstrução e até reinicializei e ainda não consegui depurar o original sem essa mensagem. Pesquisei no meu sistema cópias do arquivo que causava o erro e descobri que as cópias eram mantidas em

c: \ Usuário \ nome de usuário \ AppData \ Local \ Assembly \ dl3

Isso ocorreu no Win7-64, mas será semelhante em outros sistemas operacionais Windows. Excluí todas as cópias que encontrei lá e não recebo mais a mensagem. Não precisei desmarcar a opção "Ativar apenas meu código".

Além disso, isso era para um aplicativo WPF, mas me deparei com esse segmento na minha pesquisa, espero que isso ajude outra pessoa.


3

Consegui resolver esse problema seguindo estas etapas:

  1. Clique com o botão direito do mouse na Solução (não no Projeto) e selecione 'Propriedades'
  2. No painel esquerdo, selecione 'Propriedades de configuração'
  3. No painel direito, selecione 'Debug' na coluna 'Configuration' do seu projeto

Se você não vir a Solução listada no Gerenciador de Soluções, siga estas etapas:

  1. Na barra de menus, vá para Ferramentas -> Opções
  2. No painel esquerdo, selecione 'Projetos e soluções' (pode ser necessário marcar 'Mostrar todas as configurações' na área inferior esquerda da janela
  3. No painel direito, marque 'Sempre mostrar solução'

Eu espero que isso ajude.


2

Eu também tenho tudo isso. E eu fiz tudo isso. Parece que isso acontece comigo sempre que eu obtém uma cópia nova de toda a solução fora do controle de origem. Portanto, se tivermos feito tudo isso, as DLLs e os arquivos .pdb excluídos para todas as referências (Assemblies) no projeto da Web, usamos a opção clean na solução, os arquivos temporários excluídos, o VS fechado e a reabertura, garantem que o modo de depuração esteja selecionado e definido na íntegra e as otimizações estão desativadas, o que mais há?!?!?!


Também estou desesperado por uma solução. Não pode nem gerar um arquivo pdb.
Xar

2

Eu tive o mesmo problema no meu projeto da web no Visual Studio 2010 e, finalmente, encontrei o motivo pelo qual estava recebendo essa mensagem. O que fiz foi alterar uma opção de depuração existente no Visual studio:

  • Vá para Ferramentas-> Opções-> Depuração-> Símbolos-> Todos os módulos
  • Marque o botão de opção "a menos que seja excluído"
  • Clique no link "Especificar módulos excluídos" e remova a DLL que deseja depurar.

No meu caso, era o meu arquivo dll da web ...


2

Eu tive isso ao tentar depurar remotamente um aplicativo em um computador que pertence a uma sub-rede diferente. Consegui depurar e percorrer o código ao executá-lo na rede se as máquinas estivessem na mesma sub-rede. Depois de alterar a sub-rede, porém, não consegui avançar ao executar a partir da rede e estava obtendo o "O módulo a seguir foi criado com otimizações ativadas ou sem informações de depuração".

A solução? Fácil. Copie a solução criada na máquina que hospeda a depuração remota e execute-a localmente.


2

Isso aconteceu comigo em um projeto winForms do VS 2010. Como a maioria das pessoas aqui tem projetos na Web, acho que isso tem a ver com o acesso à pasta na qual o projeto está armazenado. Digo isso porque quando esse problema me ocorreu, o Google Drive estava sincronizando a pasta em que mantenho meus projetos. Parece que apenas desabilitar a sincronização não resolve o problema.

Minha solução é semelhante a uma das respostas acima:

  • Foi para "Propriedades do projeto> Compilar> Opções avançadas de compilação"
  • Verificado "Ativar otimização"
  • Defina "Informações gerais de depuração:" como "Nenhuma"
  • Desmarcado "Definir constante DEBUG"
  • E pressionou OK
  • Depois voltou e retornou as opções ao seu estado inicial.

Espero que isso ajude alguém, pois parece que isso ainda acontece.


2

Siga isto: (primeira interrupção da depuração)
1: clique com o botão direito do mouse no nome da solução do projeto ou no projeto -> Propriedades
2: em Propriedades de configuração, selecione configuração Gerenciador
3: Altere a configuração para depurar e clique em fechar
4: Altere a configuração para depurar e clique em Aplicar - > OK
Agora, reconstrua a solução ....!


1

Para mim, marque a caixa "Otimizar código" nas propriedades do projeto, salve, desmarque e salve novamente.

Desabilitar "Ativar apenas meu código" também funcionou, mas isso foi mais uma solução alternativa do que uma correção, pois eu não queria essa configuração.


1

Eu tive o mesmo problema, mas com causa e solução diferentes. A janela era igual à mostrada por Gustavo (acima), mas o caminho estava em: "\ users \ zzz \ AppSettings ..." (onde zzz é o nome de usuário do windows)

Eu tinha um suplemento do Excel - eu estava testando a instalação do suplemento, então eu tinha uma cópia instalada através da função de instalação do VS. Obviamente, o VS estava tentando depurar a cópia instalada e a cópia que eu havia acabado de lançar e não conseguiu encontrar símbolos de depuração na cópia instalada.

Nenhuma das soluções acima funcionou (sem efeitos colaterais),

SOLUÇÃO: desinstalar o complemento e excluir manualmente os arquivos nas Configurações do aplicativo funcionou.


0

Você mencionou que é um projeto da web ... você tem

<compilation debug="true />

no seu web.config?


0

Eu tive o mesmo problema depois de criar uma configuração de versão. Aconteceu que, quando voltei para a Depuração, o VS não estava detectando nenhuma diferença, por isso não estava atualizando os arquivos .dll e .pdb na pasta bin.

Aqui está o que funcionou para mim:

  1. Execute o iisreset (para limpar as pastas temporárias)
  2. Salve o web.config (para forçar o VS a realmente reconstruir)
  3. Reconstruir na depuração
  4. Iniciar o projeto

Por que você não usou o comando Rebuild no menu Build? Isso força todos os módulos a serem reconstruídos, sejam elas detectadas ou não.
31413 Ron

@ Ron desculpe, não me lembro de todos os detalhes, isso foi há um tempo atrás, acho que houve um problema com essa versão e a reconstrução do menu de compilação não estava limpando os arquivos conforme o esperado.
bubbassauro


0

Meu caso é o seguinte: webservice referenciado lib1.dll. Mais tarde, removi a referência, pois ela não era mais usada. No entanto, lib1.dll permaneceu na pasta bin. Como a biblioteca não foi referenciada, as ações Reconstruir e Limpar não foram úteis. Depois de excluir manualmente o lib1.dll da pasta bin, eu me livrei dessa mensagem.


0

Se você estiver publicando no IIS e não estiver usando o servidor da Web interno - ou o IIS express - verifique se as configurações do perfil de publicação estão no modo de depuração. No vs 11, por padrão, está no modo de lançamento.


0

Apenas para adicionar, eu estava olhando este blog para encontrar a solução para o mesmo problema que estava enfrentando. Infelizmente, as soluções mencionadas acima não me ajudaram. Por fim, descobri que estava instalando meus bits (junto com .pdb) através do instalador e definindo permissão explicitamente na pasta de instalação.

Por esse motivo, o VS não conseguiu carregar o pdb, embora o navegador de arquivos estivesse mostrando o arquivo correto, mas estava dando o mesmo erro mencionado acima.

Depois de desmarcar a opção "Ativar apenas meu código" e remover as configurações de permissão do instalador, o VS começou a carregar o módulo.


0

A única configuração que funcionou para mim foi a seguinte

Projeto -> Propriedades (do seu projeto) -> guia Depuração verifique se a Configuração está definida como Ativa (depuração) Em "Unable Debuggers", verifique se "Ativar depuração de código não gerenciado" está marcada


0

Estou criando um serviço do Windows e aqui está o que funcionou para mim:

  • Desinstale o serviço.
  • Abra um prompt de comando e vá para c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
  • installutil C: \ MyFantabulusWindowService \ bin \ Debug \ MyFantabulusWindowService.exe

A grandeza foi alcançada!


0

Caso: testando o assembly com o projeto Console no desenvolvimento do SharePoint - se você estiver desenvolvendo o SharePoint e vendo este alerta no VS, implante seu assembly SP no GAC antes de testar seu aplicativo de console SE o seu projeto principal do SP tiver métodos necessários ligue no aplicativo de teste do console.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.