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?

È stato utile?

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

  1. Fare clic destro sull'applicazione .EXE e scegliere Proprietà
  2. Vai Build Tab
  3. Modificare la casella combinata di destinazione Piattaforma a 86

entrare descrizione dell'immagine qui

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.

Maggiori informazioni qui .

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.

Perché non Modifica e continuazione lavorare sul CLR x64?

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;)

  1. 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.

  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top