Ich muss mehrere Web-Setup-Projekte (mit VS2005 und ASP.Net/C#) in demselben virtuellen Ordner installieren. Die Projekte teilen einige Assemblyreferenzen (die Dateisysteme sind alle so strukturiert, dass sie denselben "bin" -Ordner verwenden), was die Implementierung von Änderungen an diesen Assemblies problematisch macht, da das MS-Installationsprogramm nur Assemblys überschreibt, wenn die aktuell installierte Version älter ist als die in das MSI.Wie kann ich MSBuild verwenden, um Versionsinformationen nur zu aktualisieren, wenn eine Assembly geändert wurde?
Ich schlage nicht vor, dass das pessimistische Installationsschema falsch ist - nur dass es ein Problem in der Umgebung schafft, mit der ich arbeiten durfte. Da es eine beträchtliche Anzahl von allgemeinen Assemblys und eine beträchtliche Anzahl von Entwicklern gibt, die eine allgemeine Assembly ändern können, aber vergessen, ihre Versionsnummer zu aktualisieren, führt das manuelle Verwalten der Versionierung zu großer Verwirrung bei der Installation.
Auf der anderen Seite dieser Ausgabe, ist es auch wichtig, nicht spontan Versionsnummern zu aktualisieren und alle gemeinsamen Baugruppen mit jeder installieren, da das könnte (zumindest vorübergehend) obskuren Fällen, in denen tatsächliche Änderungen vorgenommen wurden ersetzen.
Das Gesagte, was ich suche, ist ein Mittel zur Aktualisierung der Assemblyversionsinformationen (vorzugsweise mit MSBuild) nur in Fällen, in denen die Baugruppenbestandteile (Codemodule, Ressourcen usw.) tatsächlich geändert haben/haben.
Ich habe ein paar Referenzen gefunden, die zumindest teilweise relevant sind here (AssemblyInfo Aufgabe auf MSDN) und here (sieht ähnlich aus, was ich brauche, aber mehr als zwei Jahre alt und ohne eine klare Lösung).
Mein Team verwendet auch die TFS-Versionskontrolle, daher sollte eine automatisierte Lösung wahrscheinlich ein Mittel enthalten, mit dem die AssemblyInfo während des Builds aus- und eingecheckt werden kann.
Jede Hilfe würde sehr geschätzt werden.
Vielen Dank im Voraus.