2009-04-29 7 views
3

Microsoft fördert. NET seit über 8 Jahren jetzt.Software Versioning: Unterschied in Windows Installer und .NET Version

.Net-Assemblies werden mit 4 # Versionierung wie major.minor [.build [.revision]] versioniert. Ref here

Während Windows Installer schlägt noch 3 # Versionierung wie major.minor.build. Ref here

Mit dem Unterschied in der Versionierung in zwei Systemen. Es ist nicht einfach, die .Net Assembly-Version einem Installer zuzuordnen. Es ist ziemlich kompliziert, Windows Installer für die Installation von .Net-Anwendungen zu verwenden, insbesondere wenn jemand das Upgrade-Produkt für Änderungen in der Revision implementieren möchte.

Wie diese Situation zu überwinden? Wir möchten unser Produkt upgraden, auch wenn sich die Revision nur minimal ändert.

+0

Um fair zu sein, existiert der Windows Installer seit über 10 Jahren. Aber auf jeden Fall halte ich ihre Entscheidung, nur 3 Teile der typischen 4-teiligen Version zu unterstützen, für ärgerlich. –

Antwort

2

Warum würden Sie .NET-Assembly-Versionen direkt auf Ihre Produktversion abbilden? Haben Sie wirklich nur eine Baugruppe in Ihrem Produkt?

Die meisten Produktkonfigurationsverwaltungsprozesse, die ich gesehen habe, verfolgen normalerweise Produktversionen mit Manifesten (auch Stücklisten genannt), die auflisten, welche Versionen von Binärdateien, Konfigurationsdateien und Dokumentation in diese Produktversion gehen. Dies entkoppelt Ihren Entwicklungsprozess von Ihrem Freigabeprozess, was nicht zuletzt bei kommerziellen Produkten eine gute Sache ist.

+0

Wir haben mehrere Assemblies, aber wir möchten, dass unsere Clients für die geringsten Änderungen, die wir in unserer Codebasis vornehmen, auf die neueste Version aktualisieren. Daher fügen wir die SVN-Revisionsnummer als letzten Teil der Assemblyversion hinzu. einige, wie wir Produktnummern gleich mit unserer Assembly-Version halten möchten. Ist es falsch zu tun? – NileshChauhan

+0

Identifikationsschemata sollten stabil und vorhersehbar sein. Ihre Upgrade-Richtlinie kann sich in Zukunft verschieben. Das Hinzufügen einer Revision mit Ihrer Assemblyversions-ID ist in Ordnung - aber Ihr * Produkt * ist mehr als nur die Summe Ihrer Assemblys. Ihr Produkt ist, was Sie entschließen, an Kunden zu versenden. Die Versandentscheidung ist getrennt von Ihrer Bauentscheidung. Planen Sie immer Änderungen. Mein Rat: Geben Sie separate Produktversionsidentitäten an, machen Sie sie für Kunden sichtbar (Installationsprogramme, Hilfe> About), und stellen Sie BoMs verknüpfende Produktversion der Assemblyversion (sowie Dokumentenrevisionen & c) zur Verfügung. –

1

Die von .NET und dem Windows-Installer verwendeten Versionen behandeln unterschiedliche Probleme. In .NET wird die Assemblyversion vom Loader verwendet, um zu ermitteln, welche Version der Assembly geladen werden soll. Denken Sie daran, dass Sie mehrere Versionen derselben Assembly in GAC bereitstellen und nebeneinander verfügbar machen können. Sie können sogar Richtlinien festlegen, die die genaue Version einer zu ladenden Assembly angeben. Ich kann verschiedene Versionen von Assembly A in GAC haben und Anwendung 1 mit Version 1 und Anwendung 2 mit Version 2 verwenden. Obwohl ich nicht viel über das Windows-Installationsprogramm weiß, denke ich, dass es die Version und die Produkt-GUID verwendet Nachverfolgen, welche Version einer Anwendung installiert wurde, damit festgestellt werden kann, ob die zu installierende Anwendung neuer ist als die bereits installierte Anwendung, und den Benutzer warnen oder zuerst deinstallieren oder den Benutzer auswählen lassen.

4

Dies ist nicht etwas zu überwinden. Es ist eine Designbeschränkung, um herum zu akzeptieren und zu entwerfen. Lästiges Ja, aber nicht etwas, das sich in absehbarer Zeit ändern könnte. Windows Installer-Produktversionen basieren auf 3 Teilen. Denken Sie auch daran, dass die ersten beiden Teile nicht mehr als 255 sein dürfen, aber der dritte Teil kann bis zu 65.535 betragen.