2009-04-23 6 views
3

Ich arbeite an einem SDK, das sowohl auf das Full/Desktop .NET Framework als auch auf das Compact .NET Framework ausgerichtet ist. Als solche habe ich eine Lösung, die Projekte für das Compact Framework und den gesamten Rahmen hat. Die Projektdateien enthalten die gleichen Quelldateien oder sollten dies tun. Einige der Entwickler, die mit mir an diesem SDK arbeiten, arbeiten nur auf der gesamten Framework-Seite. Von Zeit zu Zeit fügen sie den vollständigen Framework-Projekten eine Datei hinzu, vergessen jedoch, sie dem kompakten Framework-Projekt hinzuzufügen. Schließlich verweist ein anderer Code (bereits in beiden Projekten) auf diesen neuen Typ. Dann schlägt der Build an diesem Abend fehl, da das kompakte Framework-Projekt die neue Datei nicht enthält. Kennt jemand ein Werkzeug oder einen Trick, um zu überprüfen, dass zwei Projektdateien synchron sind? Denken Sie daran, dass die Dateien nicht identisch sind (eines für das kompakte Framework und das andere für das vollständige Framework).Gibt es eine zuverlässige Möglichkeit, Compact Framework- und Desktop-Projekte mit Visual Studio 2008 synchron zu halten?

BTW, bevor Sie es erwähnen, habe ich The Moths Blog-Beiträge zu diesem Thema gelesen.

Pat O

+0

Die Diskussion fließt etwas schneller, wenn Sie einen Link für einen Blog einfügen, auf den Sie verweisen. –

+0

Der Beginn der Serie ist hier . –

+0

@pdohara - ein Kommentar; Fairerweise, aber ich habe festgestellt, dass dies eine unschätzbare Möglichkeit ist, die Notwendigkeit, mehrere Projektdateien zu synchronisieren, vollständig zu beseitigen - es gibt nur eine Master-Datei; der Rest sagt nur "die Dateien von hier" –

Antwort

1

Hört sich an, als ob Sie bereits kontinuierliche Integration haben, das ist wirklich der erste Schritt - und stellen Sie sicher, dass alle Entwickler wissen, dass der Build so schnell wie möglich bricht.

Wenn Sie dies nicht tun, überprüfen Sie JetBrains Team City, Cruise Control oder Microsoft Team Systems Team Build.

Je nach Versionskontrollserver können Sie möglicherweise auch Check-in-Richtlinien einrichten. Wenn also eine bestimmte Datei eingecheckt ist und eine Warnung generiert wird.

Aber normalerweise teile ich so viel Code wie ich kann durch verknüpfte Dateien. Wenn Sie einen anderen Code zwischen den beiden haben, hoffentlich feine Unterschiede, können Sie #IFDEFs um den unterschiedlichen Code herum machen.

Sorry, aber keine einfachen Antworten zu diesem Thema.

+0

Ich erwarte so viel, aber Sie können meine Notwendigkeit verstehen, die Frage zu stellen. –

5

Ja, es ein Trick ist, diese Zeile aus meinem protobuf-net CF ;-p Betrachten project file:

<ItemGroup> 
    <Compile Include="..\protobuf-net\**\*.cs" /> 
</ItemGroup> 

Er sagt: „in diesem Projekt gehören und kompilieren alle. CS-Dateien von (zurück eine Ebene, bis zu den Geschwisterprobobuf-Net-Ordner) und alle Unterordner ".

+0

Das ist Genie auf so vielen Ebenen. 45k gut verdient. –

+0

Cooler Trick. Nicht wirklich, wonach ich gesucht habe. Ich denke, ich muss noch etwas darüber nachdenken. –

+0

Clever, aber es wird davon ausgegangen, dass ich alle Dateien in beiden möchte. –