“Modifiche alle applicazioni a 64 bit non sono ammessi” quando il debug in Visual Studio 2008
-
19-09-2019 - |
Domanda
Sto utilizzando Visual Studio 2008, C#.Provo a usare la modifica e-continua (modifica il codice in fase di debug), e di ottenere questa eccezione:
"Modifiche alle applicazioni a 64 bit non sono ammessi"
Perché è che?C'è una soluzione?
Soluzione
Modifica e continuazione non è supportata su applicazioni a 64 bit a livello CLR quindi non c'è alcun modo per Visual Studio per la sua attuazione sia.
Il modo più semplice per ovviare a questo problema è quello di colpire l'applicazione per chip x86. Questo farà sì che il suo funzionamento in modalità Wow64 come un processo a 32 bit e quindi essere in grado di ENC. È possibile farlo facendo la seguente
- Fare clic destro sull'applicazione .EXE e scegliere Proprietà
- Vai Build Tab
- Modificare la casella combinata di destinazione Piattaforma a 86
Altri suggerimenti
Personalmente, quello che in realtà voglio è stop-and-edit non modifica-e-continua.
Così ho semplicemente spengo Strumenti / Opzioni / Debug / Modifica e continuazione.
In questo modo inibisce quella finestra di dialogo fastidioso da tormentarmi su una funzionalità mancante che non volevo in primo luogo: -)
Il "Modifica e continuazione" funzione per 64-bit sarà supportato codice in Visual Studio 2013.
Come jcopenha detto non c'è edit-e-continua su x64 ancora. La versione attuale del CLR 64bit non lo supporta. Tuttavia, c'è un lavoro in giro.
Si può trovare su Bug posta Babble .
È necessario compilare l'assembly gestito con una CPU di destinazione di x86. Questo farà sì che il CLR a 32 bit da utilizzare piuttosto che la CLR 64 bit.
Per un progetto VB, fare clic destro sul progetto e selezionare Proprietà / Compila / Opzioni avanzate di compilazione / Target CPU e impostarla su "x86". Per un progetto C #, fare clic destro sul progetto e andare a Properites / build / Piattaforma di destinazione e impostarlo su "x86".
Speranza che aiuta.
L'edit-e-continua funzione semplicemente non è stato implementato in 64 ancora. Non ho sentito alcun aggiornamento su quando hanno intenzione di farlo ancora.
Ho avuto lo stesso messaggio di errore in MS Visual C # Express 2010. E 'stato divertente, però, perché l'applicazione è stata definitivamente configurato come un progetto x86!
Alla fine, è stata la seguente riga manca nella mia Csproj file:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
...
<PlatformTarget>x86</PlatformTarget>
...
</PropertyGroup>
Non so il motivo per cui mancava ... Credo che MS Visual C # Express 2010 non è priva di bug;)
quando l'Obiettivo della CPU è impostato su 'CPU', verrà eseguito come un'applicazione a 32 bit su un 32 bit di windows, e 64bit applicazione su un windows a 64 bit.Tuttavia visual studio non consente di 'modifica-e-continua' caratteristica per 64bit applicazione.
Per eseguire il debug 'fluente' a 64bit macchina, è possibile:
a) 'Target CPU' e 'CPU', ma controllare il 'Preferiscono 32bit' box.
b) o, di impostare il "Target CPU' e 'x86'
MOLTO importante:entrambi opzione richiede l' 'Attivare le ottimizzazioni per essere deselezionata.
Purtroppo, Modifica e continuazione non è supportato a 64 bit. In effetti, se si tenta di utilizzare Modifica e continua durante il debug di un'applicazione a 64 bit, si ottiene il seguente messaggio di errore: "Modifiche alle applicazioni a 64 bit non sono ammessi" Molti utenti potrebbero non essere consapevoli del fatto che per impostazione predefinita, quando si crea un C # o VB progetto in Visual Studio 2008, la "Piattaforma" per il progetto è impostato su "Any CPU". Questo significa che se si esegue l'applicazione in un sistema operativo a 32-bit, l'applicazione verrà eseguito come un processo a 32 bit e allo stesso modo, se si esegue l'applicazione in un sistema operativo a 64 bit, l'applicazione sarà a 64 bit. La conseguenza di "Any CPU" è che quando si tenta di eseguire il debug dell'applicazione su un sistema operativo a 64 bit, non sarà in grado di utilizzare la funzionalità Modifica e continuazione.
Tuttavia, c'è una soluzione. Durante lo sviluppo, è possibile impostare la piattaforma per il progetto a 32 bit il che significa che l'applicazione verrà eseguito come un processo a 32 bit anche su un sistema operativo a 64 bit. Questo è noto come WOW64 o "Windows on Windows", che sostanzialmente significa che è possibile eseguire un'applicazione a 32 bit in un sistema operativo a 64 bit.
Quindi, come si fa a impostare la piattaforma per il vostro progetto a 32 bit? Ebbene, è necessario creare una piattaforma a 32 bit utilizzando il Visual Studio Configuration Manager. Ecco una breve procedura dettagliata.
In primo luogo, aprire la finestra "Configuration Manager" dal Build -> Configuration Manager. La finestra di dialogo Configuration Manager è mostrato sotto.