Mit @ Vance handliche Konsole App oben, habe ich die folgenden als Before Ereignis
<Target Name="BeforeBuild">
<!--Check out BD.edmx, Another.edmx, all configs-->
<Exec Command="$(SolutionDir)\Library\tf checkout /lock:none $(ProjectDir)Generation\DB.edmx" />
<Exec Command="$(SolutionDir)\Library\tf checkout /lock:none $(ProjectDir)Generation\Another.edmx" />
<!--Set to 2008 for Dev-->
<Exec Condition=" '$(Configuration)' == 'DEV1' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV1' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV2' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV2' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2008" />
<!--Set to 2005 for Deployments-->
<Exec Condition=" '$(Configuration)' == 'TEST' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'TEST' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'PRODUCTION' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'PRODUCTION' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2005" />
</Target>
Das ist super praktisch, da lästiges Umsetzen vermieden wird. Danke, dass Sie Vance teilen.
Ich habe TF.exe zum Bibliotheks-Lösungsordner hinzugefügt und dies hilft, da ich jetzt die EDMX-Dateien auschecken kann, bevor ich versuche, sie als Teil des Builds zu bearbeiten. Auch ich habe dies mit Bedingungen hinzugefügt, so dass es für die Bereitstellungen auf dem Server und zurück zu 2005 für die Dev-Maschinen-SLN-Konfigurationen festgelegt wird. Außerdem müssen Sie die Datei SetEdmxSqlVersion.exe (und .pdb) zum Bibliotheksordner hinzufügen (oder wo auch immer Sie diese Bits behalten möchten).
Vielen Dank @Vance. wirklich ordentlich, massiven Schoner und hält meine Builds völlig automatisiert und schmerzfrei :)
Ich habe dies versehentlich nach unten, öffnete das, aber jetzt kann nicht tun, was ich wirklich tun wollte, was es ist vote up! Vielen Dank, dass Sie das Problem gefunden haben. Wenn ich das richtig verstehe, ändert sich der Wert von 2005 auf 2008, weil das Modell aus der Datenbank aktualisiert wird, wobei die Datenbank eine SQL 2008 DB ist? In meiner Umgebung hat meine Entwicklungsmaschine SQL 2008, aber die Testumgebung hat 2005 (welche Produktion hat auch). Bis ich auf 2008 umgestiegen bin, habe ich recht, wenn ich annehme, dass dies weiterhin passieren wird? – jamiebarrow
Ich setze das im Allgemeinen auf 2005, was die Produktionsdatenbank ist; Ich benutze 2008 für die Entwicklung. 2008 ist abwärtskompatibel also keine Probleme. Auch dies soll nach einem Update/Generieren wieder geändert werden. Ich bestätige dies immer, wenn ich nach bitterer Erfahrung den EDMX einchecke. –
WOW, tolle Wiederholung, danke RECHARD –