2010-08-12 5 views
1

Je fais une application de bureau en C#, Visual Studio 2010 sur Windows XP SP2 Professional."Une tentative de joindre une base de données nommée automatiquement" erreur

Si j'exécute cette application directement à partir du dossier publié sans exécuter le programme d'installation OU que je l'exécute à partir du dossier de débogage OU simplement de déboguer l'application, cette erreur ne se produit pas. Mais si je lance l'installation à partir du dossier publié puis exécutez-le à partir du menu de démarrage, il donne cette erreur:

An attempt to attach an auto-named database for file C:\Documents and Settings\Desi\Local Settings\Apps\2.0\Data\K9KMBYK5.881\EKOOHKP2.0Y1\smas..tion_ddac366ea7cca062_0001.0000_c8a0800c5798ef15\Data\SmasDb.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

Je publie application à un dossier dans « mes documents ».

C:\Documents and Settings\Desi\Local Settings\Apps\2.0\Data\K9KMBYK5.881\EKOOHKP2.0Y1\smas..tion_ddac366ea7cca062_0001.0000_c8a0800c5798ef15\Data\1.0.0.0 (this Data directory has only the user.config file.)

C:\Documents and Settings\Desi\Local Settings\Apps\2.0\LWGCKB30.QZJ\E81QYJON.ZX9\manifests (contains smas..tion_ddac366ea7cca062_0001.0000_none_a42d8ca7a940cae4.cdf-ms smas..tion_ddac366ea7cca062_0001.0000_none_a42d8ca7a940cae4.manifest smas.exe_ddac366ea7cca062_0001.0000_none_3d144d2ce016963b.cdf-ms smas.exe_ddac366ea7cca062_0001.0000_none_3d144d2ce016963b.manifest)

C:\Documents and Settings\Desi\Local Settings\Apps\2.0\LWGCKB30.QZJ\E81QYJON.ZX9\smas.exe_ddac366ea7cca062_0001.0000_none_3d144d2ce016963b (contains SMAS.exe.config, SmasDb.mdf, SmasDb_log.ldf)

C:\Documents and Settings\Desi\Local Settings\Apps\2.0\LWGCKB30.QZJ\E81QYJON.ZX9\smas..tion_ddac366ea7cca062_0001.0000_c8a0800c5798ef15 (this directory has all files including all dlls, SmasDb.mdf and SmasDb_log.ldf, SMAS.exe.config, some .cdf-ms and .manifest files NOT same as above .cdf-ms and .manifest)

Répondre

0

Avez-vous vérifié que le long chemin (C: \ Documents and Settings \ USER \ Local Settings \ Apps \ 2.0 \ Data \ MP63M1NA.ZG5 \ BCOVJJWN.C53 \ smas..tion_ddac366ea7cca062_0001.0000_9c79a710d42895b6 \ Data \ SmasDb.mdf) pour voir s'il y a effectivement une base de données là-bas?

Parmi les trois options dans le message d'erreur, je pencherais pour: ou fichier spécifié ne peut pas être ouvert

Vous devez penser à où vous voulez que la base de données soit (sur un non-développeur ordinateur), et assurez-vous qu'il est copié là.

Voir le message Working with Databases in Visual Web Developer 2005 Express Edition à propos de la | DataDirectory | syntaxe.

+0

Ceci est le problème. Le répertoire ci-dessus contient uniquement le fichier user.config. Tous les autres fichiers sont dans d'autres répertoires. Ajout de plus de détails à la question. – SMUsamaShah

+0

Comment vous assurer que la base de données est copiée dans le répertoire de données? – SMUsamaShah

+0

J'ai fait un très mauvais design je pense. Le connectionString, DataSet, et toutes les classes sont dans un autre projet dll dans la même solution. (J'ai fait cela parce que l'exigence était de faire une DLL au lieu de tout faire dans le projet principal) Maintenant, la solution possible est de s'assurer que les fichiers de base de données sont copiés dans DataDirectory. Comment faire ça? – SMUsamaShah

0

Vous utilisez ClickOnce et vous utilisez une base de données SQL CE? Avez-vous inclus la base de données dans l'application publiée?

+0

Oui, j'utilise ClickOnce et la base de données SQL. Et la base de données est inclus dans l'application publiée – SMUsamaShah

Questions connexes