2010-12-22 5 views
2

J'essaie d'utiliser les transformations Web.config dans mon projet ASP.NET MVC 2 s'exécutant sur .NET 4. Cependant, j'ai un problème:Transformations Web.config dans ASP.NET MVC 2 et fichiers Web.config supplémentaires

// Root Web.config 
<add name="MyDB" connectionString="default...default" /> 


// Root Web.Debug.config 
<add name="MyDB" connectionString="debug...debug" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> 

// Root Web.Release.config 
<add name="MyDB" connectionString="release... release" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> 

je continue à avoir cette erreur:

Warning No element in the source document matches '/configuration/add[@name='MyDB']' C:\filePath\Web.Release.config

Je rétrécis jusqu'à ce fichier web.config dans le dossier Vues. Si je lui donne un connectionString, tel que celui du fichier racine Web.config, tout va bien, mais cela signifie que je dois maintenir deux fichiers Web.config. Y a-t-il une solution à cela? Est-ce que je fais quelque chose de mal?

Répondre

3

Vous ne savez pas pourquoi web.config dans le dossier Views est impliqué, mais l'erreur que vous obtenez vous donne l'impression d'une incompatibilité entre l'élément de web.config et les fichiers de configuration de la transformation.

En web.config, en supposant <add /> est un enfant de <connectionStrings /> vous feriez:

<?xml version="1.0" encoding="utf-8"?> 

<configuration> 

... 

    <connectionStrings> 
     <add name="SomeName" providerName="System.Data.SqlClient" connectionString="SomeConnectionString" /> 
    </connectionStrings> 

... 

</configuration> 

et web.debug.config

<?xml version="1.0" encoding="utf-8"?> 

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

... 

    <connectionStrings> 
     <add xdt:Locator="Match(name)" xdt:Transform="SetAttributes(connectionString)" name="SomeName" connectionString="SomeOtherConnectionString" /> 
    </connectionStrings> 

... 

</configuration> 
+0

ok, en ajoutant les parens dans [SetAttributes (connectionString)] ne fonctionnait pas et a jeté une erreur. Cependant, j'ai remarqué que mon problème était que je n'emballais pas le avec dans les fichiers de configuration de débogage/libération. J'ai tout à coup réalisé cela quand j'ai regardé votre exemple. Donc +1 pour vous pour donner un exemple. :) –

1

Comme je l'ai déjà dit: Don » t oublier de copier manuellement tous les autres attributs de "configuration" de l'original "web.config", car il semble que VS2012 ne le fait pas automatiquement, donc il n'y aura pas de correspondance ...

Questions connexes