2016-08-23 3 views
0

Ich habe ein C# -Webprojekt. Ich öffnete den Konfigurationsmanager, für "Aktive Lösungskonfiguration" wählte ichVisual Studio 2013 verwendet falsche Konfigurationsdatei

In dem neuen Fenster tippte ich den Namen (Dev), und kopierte keine Einstellungen. Ich habe "Neue Projektkonfigurationen erstellen" abgehakt.

Ich klickte mit der rechten Maustaste auf meine Web.config und wählte "Add Config Transform". Web.Dev.config erschien wie erwartet unter web.config eingerückt.

Meine web.config enthält fehlerhafte Datenbankwerte:

<connectionStrings> 
    <add name="PdxContext" connectionString="Data Source=badServer; Initial Catalog=badDB; Integrated Security=true; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Mein Web.Dev.config, teilweise gültig DB-Werte enthält:

<connectionStrings> 
    <add name="PdxContext" connectionString="Data Source=.\sql2012; Initial Catalog=test; Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 

... aber wenn ich wählen Sie die Dev-Konfiguration und Treffer ausführen, die Site wird mit der Datei web.config und nicht web.dev.config ausgeführt (sie versucht, eine Verbindung zu einer nicht existierenden Datenbank namens "badDB" auf dem Host "badServer" herzustellen).

Wenn ich mit der rechten Maustaste auf web.dev.config klicke und "Vorschau-Transformation" wähle, zeigt die Transformierte Web.config korrekt an, dass sie den connectionStrings-Wert von web.dev.config verwenden wird.

Oh, und im Konfigurationsmanager für die aktive Lösungskonfiguration für "Dev" hat die Konfigurationsspalte "Dev".

Irgendwelche Gedanken?

+0

Ich habe auch genau das gleiche Problem mit der integrierten Debug-Konfiguration. Es ignoriert Werte in Web.Debug.config –

+0

Ich denke, vielleicht funktioniert es nur unter Bereitstellung. Aber wie arbeiten dann mehrere Entwickler, die am selben Projekt arbeiten, aber mit unterschiedlichen Konfigurationen zusammen? Ich denke, sie müssten ihre eigene Kopie von web.config haben und web.config mit ihrer Kopie jedes Mal überschreiben, wenn sie ein SVN-Update gemacht haben, das web.config änderte? Das erscheint sehr ungeschickt. –

Antwort

0

Die Lösung finden Sie hier: https://stackoverflow.com/a/3994081

Wenn Sie Visual Studio 2013 auch sehen Matti Preis Antwort auf diese Stelle verwenden „, für jedermann mit dieser in späteren Versionen von VS zu kämpfen, musste ich ändern < Zielname = "CopyWebTemplateConfig" BeforeTargets = "Build"> Nach < Zielname = "CopyWebTemplateConfig" BeforeTargets = "PrepareForBuild"> Und danach hat alles funktioniert. "