2010-10-25 28 views
10

J'ai une application Web VS 2008 C# avec un tas de références de projets aux dlls personnalisées. Ceux-ci sont tous à un chemin relatif du projet Web. Récemment, j'ai remarqué que Clean Solution supprime certains fichiers DLL, mais pas tous, du dossier bin \ debug de l'application Web. Par exemple:La solution propre à Visual Studio ne supprime pas toutes les DLL/références de projet déplacées

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

Le premier fonctionne normalement (propre nettoie, les nouvelles versions copiées projet web sur la reconstruction), mais pas le second. Un effet secondaire est que je ne prends pas automatiquement les modifications à la dépendance.

Merci pour toute aide.

+0

La deuxième DLL est-elle éventuellement dans le GAC alors que la première ne l'est pas? –

+0

Bonne idée, mais non, je n'ai aucune de mes DLL dans le GAC. En général, nous utilisons des références de projets et déployons des copies séparées des composants avec chaque application. –

+0

J'ai le même problème. Il semble y avoir un problème lié au fait que le serveur de build ne souhaite pas déployer le même assembly qui n'est pas nettoyé. Cela fonctionne sur toutes les autres machines dev lors de la compilation –

Répondre

2

Parfois, VS ne choisit pas la dernière DLL si la version est la même. Essayez de changer votre version dans AssemblyInfo.cs et cela devrait fonctionner. Dans le passé, j'ai fait face au même problème lorsque je comptais sur la taille/l'horodatage, mais j'ai réalisé plus tard qu'en changeant la version, Studio supprime les anciennes DLL et copie les nouvelles DLL.

+0

Je peux confirmer que ce problème se produit toujours lorsque vous avez modifié le numéro de version AssemblyInfo.cs par le plus petit numéro de révision. –

4

Il semble seulement supprimer les fichiers qu'il «connaît».

Par exemple, les anciens fichiers de bibliothèque et les anciennes références après avoir renommé des projets sont toujours présents. Très étrange. J'ai toujours supposé que 'Clean' était juste une suppression simple - et je ne comprends pas pourquoi ce n'est pas le cas. Entrez et vérifiez chaque dossier à la main en cas de doute.