Pregunta

Se pregunta si alguien tiene una solución a este error 2010. Tengo un proyecto que bien construida en Visual Studio 2008 que solía construir en 2010 porque Visual Studio está aferrando a la DLL después de la aplicación se ejecuta sólo si un diseñador de ventana está abierta. He creado un proyecto de peso muy ligero que muestra este problema. Si crea una aplicación, crear un archivo DLL lib. Ponga una forma en la DLL, abra el formulario en vista de diseño y ejecutar la aplicación. Se ejecutará bien, a continuación, cierre la aplicación, vaya a la vista de código del formulario en la vista de diseño, y cambiar el código (acabo el nuevo nombre de una sola variable) a continuación, intenta volver a compilar se obtiene lo siguiente:

error 1 No se puede copiar el archivo "obj \ Debug \ customlib.dll" para "construir \ debug \ customlib.dll". El proceso no tiene acceso al archivo 'construir \ debug \ Customlib.dll' porque está siendo utilizado por otro proceso.

Si ejecuta Process Explorer y la búsqueda de la dll, el único proceso que tiene el DLL es devenv.exe !!!

Me han hecho un montón de búsqueda en este problema y han encontrado problemas similares con versiones anteriores de Dev Studio donde las personas eran capaces de simplemente añadir un pre-paso para mover el DLL bloqueado a otro nombre (.locked) y de construcción. Bien que funciona la primera vez, pero la próxima vez que se ejecuta a continuación, edición que se ha quedado bloqueado el archivo DLL actual y el que movió a .locked, por lo menos que esté dispuesto a agregar código para generar aleatoriamente un nombre para el archivo DLL bloqueado , esto no trabajará para mí (yo no quiero que mi tamaño del directorio de depuración para crecer con archivos nunca ser eliminado.)

Sólo he encontrado una solución y si usted está en este mismo barco que esto es lo que tengo que hacer para editar y ejecutar. Me aseguro de que cada ventana de vista de diseño se cierra antes de que yo corro mi proyecto en el depurador. Si cierra todas las ventanas de vista de diseño abierto devenv.exe no llevará a cabo la DLL.

¿alguien tiene una mejor solución a este problema?

¿Fue útil?

Solución

No estoy seguro de si esto va a funcionar para usted o no, pero esta pregunta similar si tiene esta línea en AssemblyInfo.cs:

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

cambiándolo a:

[assembly: AssemblyVersion("2.0.0.0")]

va a resolver este isue.

El complemento de Visual Studio en las reclamaciones " VSCommands " tener una solución para este problema. No he probado todavía, pero también afirma tener un IDE en StackOverflow reputación de seguimiento, que me intriga:)

Su "Cerrar el diseñador antes de la depuración" solución parece estar funcionando para mí (hasta ahora), por lo cual estoy muy agradecido. Estaba empezando a llegar a la etapa en la que soy gran parte de mi día fue gastado en el siguiente flujo de trabajo ...

  1. F5

  2.   

    ruidosa improperio

  3. ALT F4

  4. WIN 3

  5.   

    espera con impaciencia ...

  6. F5

Otros consejos

he tenido los mismos problemas durante mucho tiempo y de repente desapareció. Me di cuenta de que la fuente de los problemas que se inicializa el código en los constructores de servicios WCF y controles WPF. Después de limpiar los constructores de las dependencias a otros conjuntos de todo ha estado bien.

Así que mi sugerencia es: Limpiar sus constructores.

En WPF es posible que la inserción:

if (DesignerProperties.GetIsInDesignMode(this)) return;

o similares tendrá el mismo efecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top