2008-11-14 7 views
4

Ok, donc j'ai VS 2008 et SVN. Quand je "reconstruis tout" une poignée de mes .dll disparaissent de mon dossier bin.Problèmes de disparition de Visual Studio 2008 .dll

J'ai ces .dll dans un dossier de bibliothèque et c'est de là que je les référence.

Quand je vais publier l'application, la publication échoue, je pense qu'ils sont liés. Lorsque je redémarre mon web.config (changer quelque chose et enregistrer) cette erreur disparaît. Cependant, la publication échoue toujours.

Quand je vais dans le dossier et que je mets à jour svn, je les remets tous en mémoire, mais tout recommence.

Merci.

+0

De quel type de projet web s'agit-il? Projet d'application Web (avec le fichier .csproj) ou le style dossier/2005 (pas de .csproj)? – Kev

Répondre

4

Je suppose que par dossier "Bin" vous voulez dire l'emplacement de construction où Visual Studio assemble la version exécutable de votre application.

Généralement, j'ai trouvé que faire des changements manuels dans le dossier Bin est un bon moyen de faire face à «un nouveau monde de douleur». Mes problèmes ont disparu dès que j'ai commencé à laisser Visual Studio faire ce qu'il voulait avec le répertoire et je l'ai laissé seul.Si vous avez des DLL référencées à partir de votre projet, marquez-les comme "Copier Local" (sélectionnez-les dans l'Explorateur de solutions, configurez dans le panneau Propriétés) et Visual Studio s'assurera qu'elles sont copiées pour vous.

Remarque: Comme le répertoire Bin est géré par Visual Studio et qu'il est entièrement reproductible, je suggère qu'il (et son frère Obj) ne soit pas sous contrôle de source.

+0

J'ai eu un problème similaire, mais la DLL a été référencée à partir du dossier bin, une fois que j'ai ajouté la référence et défini "Copy Local" sur false, il a cessé de le supprimer. Merci! – pauloya

0

Cela ressemble à la procédure de construction qui supprime le contenu de votre répertoire bin lors de la construction.

Je ne comprends pas où vous dites que vous les référencez à partir du dossier de bibliothèque - et ils existent également dans le répertoire bin.

Votre publication pourrait échouer pour d'autres raisons, il est plus utile de poster les erreurs. Mise à jour de SVN rétablit les fichiers à la dernière version, donc si vous n'avez pas de fichier, la dernière version est celle qui existe dans votre référentiel.

choses à vérifier:

  • Vous recevez probablement des erreurs sur votre Build- il semble que sont en fait émis par d'autres projets de la DLL dans votre solution, de sorte que vous devriez vérifier si elles sont en train de construire correctement ou si ils sont affichés dans un répertoire différent au lieu de votre dossier bin. Votre référentiel subversion ne devrait probablement pas avoir de fichiers binaires ou intermédiaires tels que dll, lib, exe, suo, ncb, et quelques autres, mais ce sont les principaux.

  • Publier plus de détails ici - à partir du son de celui-ci, il semble que vous pouvez être sur les erreurs que vous n'avez pas posté ici.

+0

non, je construis bien, les projets individuels sont bien construits. Je suis d'accord que chiecking dans certains fichiers. Dll n'est pas une bonne idée, mais je ne pense pas que les retirer aidera. –

2

Vous devez spécifier "Copier Local" sur vos références, cela les copiera du dossier de la bibliothèque dans votre répertoire bin. Habituellement, vous ne devriez conserver qu'une seule copie des DLL dans le contrôle de la source (dans le dossier de la bibliothèque). Si la source du dossier bin est contrôlée, vous risquez de rencontrer des problèmes de construction.

+0

Ce serait ma conjecture! –

0

Je l'ai déjà vu lors de l'utilisation de Rebuild - Je l'ai corrigé en marquant ces dll de référence comme ReadOnly dans leurs attributs Explorer.

Ouais, c'est hacky, mais ça a gardé les pattes de VS de mes DLLs!

0

Vous avez probablement un site Web par défaut et non un projet d'application Web.