8
votes

Vs2010 nettoyer web.configs - ne pas mettre à jour

Je suis en train de jouer avec MVC 2.0 sur VS2010 et j'ai un problème Obtenir la fonctionnalité de configuration Web propre.

essentiellement dans mon web.debug.config code> J'ai p>

<connectionStrings xdt:Transform="Replace">
  <add name="ApplicationServices" 
    connectionString="Server=localhost;Database=SITE_DB;User ID=dbuser;Password=P@ssw0rd;Trusted_Connection=False;" />
</connectionStrings>

and in my `Web.config` I have

      <connectionStrings>
        <add name="ApplicationServices"
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
             providerName="System.Data.SqlClient" />
      </connectionStrings>


0 commentaires

3 Réponses :


0
votes

Je pense que vous devez mettre xdt: locator = "match (nom)" dans

<connectionStrings xdt:Transform="Replace" xdt:Locator="Match(name)">   
    <add name="ApplicationServices" 
      connectionString="Server=localhost;Database=SITE_DB;
      User ID=dbuser;Password=P@ssw0rd;Trusted_Connection=False;" 
     /> 
</connectionStrings>


2 commentaires

Que se passe-t-il s'il veut remplacer toujours tout dans l'élément Connexionstrings? En ce moment, le match (nom) ne fonctionnerait pas, non? Parce que c'est essayer de chercher un attribut sur les connexions élément appelé "nom" .. qui n'existe pas. Cet Attrib existe dans les éléments Enfant .? ??? (Il suffit de penser à un fort, ici ...)


Pure.krome est correct. Vous devez soit retirer la transformation du localisateur ou déplacer les deux transformations sur l'ajout xnode au lieu des connecteurs Xnode.



11
votes

Les transformations .config ne se produisent que lorsque vous publiez ou déployez l'application d'une manière ou d'une autre. Si vous ne faites que déboguer, les transformations ne se produisent pas.

Cela semble fou, mais c'est tout droit de la bouche d'un représentant de la MS: http://forums.asp.net/f/1532038/3711423.aspx


2 commentaires

Ce comportement fou m'a coûté assez de temps aujourd'hui :( Merci de pointer vers l'explication!


Quel est le point d'avoir un web.debug.config s'il n'est jamais utilisé alors? Il est là seulement pour confondre les gens?



1
votes

Vous pouvez activer ce comportement, mais vous devrez créer un fichier "modèle" pour stocker votre état de pré-transformation dans un fichier qui n'est pas nommé web.config, sinon vous n'écracez pas votre modèle avec vos modifications transformées. Vous devez également ajouter une tâche de transformation dans votre fichier de projet afin de pouvoir exécuter lorsque vous déboguez.

<PropertyGroup>  
    <BuildDependsOn>  
        CustomWebConfigTransform;  
        $(BuildDependsOn);  
    </BuildDependsOn>  
</PropertyGroup>  
<Target Name="CustomWebConfigTransform">  
    <TransformXml source="Web.template.config"  
        transform="Web.$(Configuration).config"  
        destination="Web.config" />
</Target>  


0 commentaires