Problème :
Un développeur a du mal à spécifier le emplacement d'un fichier MDF SQL Express par rapport au répertoire de l'application dans le fichier app.config. Ils veulent éviter de définir manuellement le chemin absolu, ce qui devient fastidieux lorsque l'application est déployée à différents emplacements.
Solution :
1. Utilisez |DataDirectory|:
|DataDirectory| n'est pas exclusivement destiné aux applications Web. Il peut être utilisé dans les applications Web et de bureau. Il représente le répertoire dans lequel l'application s'attend à trouver les fichiers de données.
2. Définir |Répertoire de données| Par programme :
Si |DataDirectory| n'est pas automatiquement défini par l'application, vous pouvez le définir par programme à l'aide de AppDomain.CurrentDomain.SetData("DataDirectory", path)
Exemple de configuration :
Dans l'application Fichier .config :
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
Dans l'initialisation du test unitaire méthode :
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); }
En utilisant cette approche, la chaîne de connexion utilisera désormais automatiquement le chemin d'accès au fichier MDF par rapport au répertoire de l'application, même dans un environnement de test unitaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!