Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB2010 WinForm] Cambiare il codice durante il debug

    Ciao a tutti !


    Mi è sorto un "problemino" nuovo con VB.NET 2010 (mai avuto con le versioni precedenti) ...


    durante il debug del codice ho SEMPRE cambiato / modificato il codice all'occorrenza (es.: "i = i + 1" potevo cambiarlo in "i = i + 2") ed il tutto è sempre andato sempre senza problemi.


    Con Visual Studio 2010 (uso la Standard aggiornata alla SP1) quando provo a fare la stessa operazione compare un bellissimo messaggio d'errore ...



    Errore 1 Impossibile applicare la modifica durante il debug.

    Il problema interessa un metodo contenente l'utilizzo di un membro/tipo di interoperabilità incorporato.

    Annullare la modifica o interrompere la sessione di debug.

    Per abilitare la funzione Modifica e continuazione, provare a impostare Incorpora tipi di interoperabilità su "False"
    per i riferimenti COM durante il debug.



    Uso Windows 7 Professional (32 bit) e le applicazioni, di conseguenza, sono tutte a 32 bit

    Ho controllato tutte le opzioni e le proprietà che ho trovato in giro, senza risolvere ...

    Qualcuno ci ha già sbattuto la testa ?

  2. #2
    A me è capitato di notare che se ho del codice che è nel progetto solo come riferimento, o che fa parte di una sorgente esterna (es. DLL) quel codice non è modificabile, ma ho la finestra in readonly mode (ovvero non fa vedere nessun messaggio, ma non mi permette la modifica).

    Se provo a modificare una sorgente "base" allora funziona tutto OK - a meno che stia modificando una delle seguenti 5:
    • Modifica di una definizione (Da Dim A As String a Dim A As Integer è naturale che non funzioni, allo stesso modo l'aggiunta, modifica eliminazione di una definizione di routine)
    • Codice sottoposto ad Infer (ad esempio: Dim A = "Prova" -> A è di tipo String; Se modifico da "Prova" a 100, A cambia tipo e quindi VS si arrabbia, come sopra)
    • Modifica di una lambda (anche interna ad un metodo, come quelli in Linq, esempio, da "Prova".ToCharArray.Select(Function(x) Asc(x)) - che ritorna un Enumerable di Integer - a "Prova".ToCharArray.Select(Function(x) x) - che ritorna un Enumerable di Char - non può funzionare. Per abbreviare il lavoro agli sviluppatori di VS non funziona nemmeno modificarla in "Prova".ToCharArray.Select(Function(x) Asc(x) + 1))
    • Modifica di una Linq Query (che per definizione è come una lambda di lamda)
    • Modifica del costrutto If(Test, SeTrue, SeFalse) il cui risultato cambia di tipo a seconda dei tipi di SeTrue e SeFalse (come la modifica di codice Infer)


    L'errore che ha dato a te sembra di più essere del tipo:
    zz.i = zz.i + 1
    dove quel «.i» si riferisce ad un metodo di una classe che viene da COM un po' particolare... Quell'impostazione che suggerisce di cambiare è quella allegata
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.