2010-10-25 7 views
10

Tengo una aplicación web VS 2008 C# con un montón de referencias de proyectos a dlls personalizados. Todos están en una ruta relativa desde el proyecto web. Recientemente me he dado cuenta de que Clean Solution elimina algunos, pero no todos, los dlls de la carpeta bin \ debug de la aplicación web. Por ejemplo:La solución de limpieza de Visual Studio no elimina todas las referencias de proyectos/proyectos que se han movido

<Reference Include="TowerCo.Utilities, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\Components\TowerCo.Utilities\bin\Debug\TowerCo.Utilities.dll</HintPath> 
</Reference> 
<Reference Include="TowerCo.WebControls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\Components\TowerCo.WebControls\bin\Debug\TowerCo.WebControls.dll</HintPath> 
</Reference> 

El primero se trabaja normalmente (Clean limpia de ella, nuevas versiones copiadas al proyecto web en reconstrucción), pero el segundo no lo hace. Un efecto secundario es que no recojo automáticamente los cambios a la dependencia.

Gracias por cualquier ayuda.

+0

¿Es la segunda DLL posiblemente en el GAC donde la primera no lo es? –

+0

Buena idea, pero no, no tengo ninguno de mis dlls en el GAC. En general, usamos referencias de proyectos e implementamos copias separadas de componentes con cada aplicación. –

+0

Estoy teniendo el mismo problema. Parece que hay un problema relacionado en que el servidor de compilación no desea implementar este mismo ensamblaje que no se limpia. Funciona en todas las otras máquinas de desarrollo al compilar –

Respuesta

2

En algún momento, VS no elige el último dll si la versión es la misma. Intenta cambiar tu versión en AssemblyInfo.cs y debería funcionar.

En el pasado, me enfrentaba al mismo problema cuando confiaba en el tamaño/marca de tiempo, pero más tarde me di cuenta de que al cambiar la versión, Studio elimina los archivos DLL más antiguos y copia los archivos DLL nuevos.

+0

Puedo confirmar que este problema aún ocurre cuando ha modificado el número de versión de AssemblyInfo.cs por el número de revisión más pequeño. –

4

Parece que solo elimina los archivos que 'conoce'.

Por ejemplo, archivos de biblioteca antiguos y referencias antiguas después de haber renombrado proyectos todavía están allí. Muy extraño. Siempre asumí que 'Limpiar' era solo una eliminación directa, y no entiendo muy bien por qué no lo es. Entre y revise cada carpeta a mano si tiene dudas.

Cuestiones relacionadas