2015-09-15 15 views
11

Sono in esecuzione Visual Studio 2015 su un Windows 7 computer portatile, e ogni volta che iniziano in su un'applicazione in debugger del IDE mi sono presentato con la seguente eccezione:Visual Studio 2015 - Come interrompere EntryPointNotFoundException quando si inizia a eseguire il debug di un'app?

Impossibile trovare un punto di ingresso denominato 'EventSetInformation' nella DLL "advapi32.dll".

enter image description here

ho trovato riferimento a questo nel coreclr repository on github indica questo è un API che è stata aggiunta in Windows 8. Il mio caso è simile al problema github, e posso fare clic su 'Continua' per ignorare l'eccezione e le mie applicazioni funzionano bene. Tuttavia, questo è davvero fastidioso perché non posso iniziare a eseguire il debug delle app senza aspettare che venga generata questa eccezione, così posso continuare manualmente a passarle.

La mia domanda è se qualcuno sa se posso impedire a questa eccezione di rompere l'IDE? Questa situazione è solo una seccatura al momento, ma di cui mi piacerebbe sbarazzarmi.

Per riferimento, in questo caso la modifica delle impostazioni di Eccezione in Visual Studio non sembra modificare il comportamento. Ecco le immagini sia per le eccezioni CLR attivazione e disattivazione, con l'eccezione: Eccezioni

CLR disabilitati screenshot with CLR exceptions disabled

eccezioni CLR abilitati screenshot with CLR exceptions enabled

Soluzione

Questo è causato da un generale de opzione bugger che sembra sovrascrivere qualsiasi impostazione specifica per eccezione. Come indicato da @John nella sua risposta qui sotto, c'è un'opzione debugger che si disabilita per fermare questo comportamento. Quando questa opzione è stata controllata vorrei avere il punto di rottura descritto, ma deselezionando si ferma che e fornisce quello che cercavo:

Option to remove to disable this behavior

+0

Semplicemente non chiedere al debugger di fermarsi quando viene lanciata questa eccezione. Debug> Windows> Impostazioni eccezioni. Fare clic sulla casella di controllo "Eccezioni di runtime in linguaggio comune" fino a quando non si trasforma in un rettangolo solido. –

+1

@HansPassant Grazie per il suggerimento, ma in questo caso la modifica dell'errore delle eccezioni CLR non cambia il modo in cui VS si comporta. Aggiornerò la domanda con schermate per dimostrarlo. –

+0

È possibile modificare il framework di destinazione su 4.5.2 anziché 4.6? –

risposta

14

Con l'aspetto del vostro screenshot, direi che si hanno abilitato l'opzione Debugger "Interrompi quando le eccezioni attraversano AppDomains o i confini gestiti/nativi". Vai a Debugger-> Opzioni e deseleziona l'opzione (3a dall'alto)

+0

Ecco fatto! Ho aggiornato la risposta con uno screenshot che mostra questa impostazione visivamente. Grazie a John. –

+0

Le mie scuse @ John ... Pensavo di aver accettato questa risposta, ma ho realizzato ieri che non l'avevo fatto. Grazie per averlo inviato. –

6

Un collega ha appena colpito questo problema e ha dovuto controllare la casella "Abilita solo il mio codice" disponibile in Strumenti -> Opzioni -> Debug -> Generale insieme alla cancellazione del controllo su "Interrompi quando le eccezioni attraversano AppDomain o confini gestiti/nativi".

+0

Questo ha funzionato bene per me. – Contango

+0

hmm Non ho idea del perché questo sia stato lanciato o cosa significhi ma ha fatto il trucco +1 – ChenChi

0

Vedere queste schermate, ho abilitato l'opzione Debugger "Interrompi quando si incrociano AppDomains o confini gestiti/nativi". Vai a Debugger-> Opzioni e deseleziona l'opzione. Funziona bene. enter image description here