Quel est le problème avec | Pipe-Drivited | Variables dans les chaînes de connexion?
-
08-06-2019 - |
Question
Je sais que |Répertoire de données| se résoudra à App_Data
dans une application ASP.NET, mais est-ce codé en dur ou existe-t-il un mécanisme généralisé à l'œuvre dans le sens de %Variables d'environnement%?
La solution
Depuis le MSDN Blog sur les données des clients intelligents:
Dans cette version, le .NET Runtime a ajouté la prise en charge de ce que nous appelons la macro DataDirectory.Cela permet à Visual Studio de mettre une variable spéciale dans la chaîne de connexion qui sera élargie au moment de l'exécution ...
Par défaut, le | dataDirectory | La variable sera élargie comme suit:
- Pour les applications placées dans un répertoire sur la machine utilisateur, ce sera le dossier de l'application (.exe).
- Pour les applications exécutées sous ClickOnce, ce sera un dossier de données spécial créé par ClickOnce
- Pour les applications Web, ce sera le dossier App_Data
Sous le capot, la valeur pour | dataDirectory | vient simplement d'une propriété sur le domaine de l'application.Il est possible de modifier cette valeur et de remplacer le comportement par défaut en faisant cela:
AppDomain.CurrentDomain.SetData("DataDirectory", newpath)