2012-03-01 4 views
1

J'ai donc réalisé un projet C# en studio visuel avec 3 projets de bibliothèque de classes. Tout fonctionne bien lors du débogage mais quand j'essaie de déployer. La base de données et le programme s'installent très bien mais quand j'essaye d'ouvrir l'application, j'obtiens une exception d'assemblage ou de fichier non trouvé. La DLL qu'il ne peut pas trouver est une bibliothèque de classes dans mon projet.Assemblage introuvable sur le déploiement du projet C#

Dans l'éditeur de système de fichiers, VS détectait automatiquement les dépendances et incluait les 3 fichiers dll dans le répertoire de l'application. J'ai essayé d'exclure ces dll et d'ajouter juste la sortie primaire des projets de la bibliothèque de classes (Same dll) mais toujours la même erreur. J'ai utilisé une classe d'installation personnalisée pour créer ma base de données lors de l'installation. Mais je ne pense pas que cela soit pertinent.

+0

Avez-vous modifié quelque chose dans les propriétés des projets de la bibliothèque de classes? – squelos

+0

Déployez-vous avec ClickOnce ou un programme d'installation? – Mathieu

+0

Non, je ne l'ai pas fait. À l'exception de l'ajout d'une chaîne de connexion – dotNes

Répondre

2

Si vous avez vérifié que vos 3 assemblys sont effectivement déployés dans votre dossier de destination, il se peut très bien qu'il s'agisse d'une autre dépendance que vous n'avez pas incluse dans votre projet d'installation.

  • Veuillez vérifier que vous avez effectivement le bon nombre d'assemblages inclus.
  • Vous pouvez également cliquer avec le bouton droit sur le projet d'installation et actualiser les dépendances.
  • Avez-vous vérifié que les dépendances dans le projet d'installation ne sont pas exclues (par erreur)?
  • En outre, il peut également s'agir d'un problème de profil .NET. Dépendez-vous des assemblys qui sont uniquement disponibles dans le profil .NET complet et votre profil de client est uniquement installé sur votre destination?

Dans le pire des cas, exécutez le SysInternals process monitor et ainsi déterminer quel assembly est manquant.

+0

En effet, c'était l'assembly SMO qui me manquait et qui a causé l'erreur. Merci beaucoup! – dotNes

+0

Est-il possible de simplement placer la DLL dans un dossier comme bin et de s'attendre à ce que tout fonctionne sans autre modification? – dotNes

+0

Je ne suis pas exactement sûr de ce que vous voulez dire, mais vous pouvez certainement ajouter des fichiers manuellement dans le projet d'installation. Cliquez avec le bouton droit sur le dossier de l'application de destination, sélectionnez Ajouter un fichier (ou un assemblage) et ajoutez-en autant que vous le souhaitez. –

1

Vous devez inclure toutes les DLL qui ne font pas partie du framework .net avec votre déployable. Votre installeur personnalisé va copier ces fichiers à l'emplacement de l'exécutable lors de l'installation.

J'ai l'habitude de créer un dossier appelé/déployer et copier toutes mes DLLs nécessaires. Je modifie également mes paramètres de projets pour les afficher dans le répertoire/deploy (au lieu de bin /). Après la construction, ce répertoire contiendra toutes les DLL et autres ressources nécessaires pour exécuter l'application.

Questions connexes