Ich bin kämpfen, um web.config Transformationen arbeiten mit automatisierten Builds zu erhalten.
Wir haben eine relativ große Lösung, die eine ASP.NET-Webanwendung und acht Klassenbibliotheken enthält. Wir haben drei Entwickler, die an dem Projekt arbeiten, und bisher hat jeder von ihnen die Lösung in einem lokalen Ordner "veröffentlicht" und dann eine Dateikopie für die Bereitstellung auf einem Testserver verwendet. Ich versuche, eine automatisierte Build-/Deployment-Lösung mit TFS 2010 einzurichten.
Ich habe eine Build-Definition erstellt und einen Aufruf von msdeploy.exe in die Build-Prozessvorlage eingefügt, um die Anwendung auf dem Testserver bereitzustellen. So weit, so gut!
Ich habe dann versucht, web.config-Transformationen zu implementieren, und ich kann sie einfach nicht zum Laufen bringen. Wenn ich bauen und veröffentlichen lokal auf meinem PC, der "veröffentlichen" Ordner hat die richtige, transformiert web.config-Datei.
Mit Team Build, die Transformation einfach nicht passieren, und ich habe nur die Basis web.config-Datei.
Ich habe versucht, einen Post-Build-Schritt in der Projektdatei der Webanwendung hinzuzufügen, wie andere vorgeschlagen haben, ähnlich wie:
<target name="AfterBuild">
<TransformXml Source="Web.generic.config"
Transform="$(ProjectConfigTransformFileName)"
Destination="Web.Config" />
</target>
aber dies schlägt fehl, weil die Quelldatei web.config einen Abschnitt "applicationSettings" hat. Ich erhalte den Fehler
Es konnten keine Schemainformationen für das Element "applicationSettings" gefunden werden.
Ich habe Vorschläge rund um das Hinzufügen von Argumenten für die MSBuild Aufgabe in der Build-Definition wie gesehen
/t:TransformWebConfig /p:Configuration=Debug
Aber das klappt nicht, wenn die Klassenbibliothek-Projekte gebaut werden, vermutlich weil sie keine web.config-Datei haben.
Irgendwelche Ideen? Wie andere dachte ich, das würde "einfach funktionieren", aber offenbar nicht. Dies ist der letzte Teil, den ich brauche, um zu funktionieren, und es macht mich verrückt. Ich bin kein msbuild-Experte, so schlicht und einfach bitte!
Vielen Dank im Voraus.
Doug