Domanda

chiedo se qualcuno ha una soluzione per questo 2010 bug. Ho un progetto che bel costruita in Visual Studio 2008 che costruiscono solito nel 2010 perché Visual Studio sta tenendo al dll dopo l'applicazione viene eseguita solo se una finestra di progettazione è aperta. Ho creato un progetto di peso molto leggero che mostra questo problema. Se si crea un'applicazione quindi creare una dll lib. Mettere una forma nella DLL, aprire il modulo in visualizzazione struttura e quindi eseguire l'applicazione. E 'in grado di funzionare, quindi chiudere l'applicazione, passare alla visualizzazione di codice del modulo in visualizzazione struttura e modificare il codice (ho appena rinominato una singola variabile) quindi provare a ricompilare si ottiene la seguente:

di errore 1 Impossibile copiare il file "obj \ Debug \ customlib.dll" per "costruire \ debug \ customlib.dll". Il processo non può accedere al file 'costruire \ debug \ Customlib.dll' perché è utilizzato da un altro processo.

Se si esegue Process Explorer e cercare il dll, l'unico processo che detiene la DLL è devenv.exe !!!

Ho fatto un sacco di ricerche su questo problema e hanno trovato problemi simili con le versioni precedenti di Dev Studio in cui le persone erano in grado di solo aggiungere un pre-passo per spostare il dll bloccato a un altro nome (.locked) e costruire. Bene che funziona la prima volta, ma la prossima volta che si esegue quindi modificare si sono bloccati fuori sia del dll corrente e quello si è spostato a .locked, quindi a meno che io sono disposto a aggiungere il codice per generare casualmente un nome per il dll bloccato , questo non funzionerà per me (non voglio che la mia taglia directory di debug a crescere con i file mai essere eliminati.)

Ho trovato solo una soluzione e se siete in questa stessa barca questo è quello che devo fare per modificare ed eseguire. Mi assicuro finestra di visualizzazione di progettazione OGNI sia chiuso prima che io abbia mai correre il mio progetto nel debugger. Se si chiude tutte le finestre aperte Visualizzazione Struttura Devenv.exe non terrà la dll.

Qualcuno ha una soluzione migliore a questo problema?

È stato utile?

Soluzione

Non sono sicuro se questo funziona per voi o no, ma questa domanda simile se si dispone di questa linea in AssemblyInfo.cs:

[assembly: AssemblyVersion("2.0.*")]

cambiandolo a:

[assembly: AssemblyVersion("2.0.0.0")]

risolverà questo isue.

Il Visual Studio add-on " VSCommands " sostiene di avere una correzione per questo problema. Non ho ancora testato, ma anche sostiene di avere un in-IDE StackOverflow Tracker reputazione che intrighi me:)

Il tuo "Chiudi stilista prima di debug" soluzione sembra funzionare per me (finora), per la quale sono molto grato. Si cominciava a raggiungere la fase in cui sono gran parte della mia giornata è stato speso nel seguente flusso di lavoro ...

  1. F5

  2.   

    forte imprecazione

  3. ALT F4

  4. WIN 3

  5.   

    attende con impazienza ...

  6. F5

Altri suggerimenti

ho avuto gli stessi problemi per lungo tempo e poi improvvisamente sono scomparsi. Mi sono reso conto che la fonte dei problemi è stata inizializzazione codice nei costruttori dei servizi WCF e controlli WPF. Dopo aver pulito i costruttori da tutte le dipendenze da altre assemblee tutto è andato bene.

Quindi il mio suggerimento è: Pulire i tuoi costruttori.

In WPF è possibile che l'inserimento:

if (DesignerProperties.GetIsInDesignMode(this)) return;

o simili avrà lo stesso effetto.

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