2010-12-13 5 views
4

Ich habe ein C# -Programm, das ein natives C++ - COM-Objekt verwendet. Visual Studio generiert eine Interop-Assembly mit Wrappern für die Typen im COM-Objekt. Bei jeder Neukompilierung der C# -Programm-Interop-Assembly wird die Version 1.0.0.0 verwendet.Kann ich die Versionsnummer der Interop-Assembly kontrollieren?

Das ist schlecht für das Installationsprogramm - manchmal erweitern wir die COM-Objektschnittstellen (fügen Sie neue Methoden am Ende einer Schnittstelle hinzu), damit die Interop-Assembly geändert werden muss. Wenn das Installationsprogramm versucht, eine vorhandene Installation zu aktualisieren, denkt es, dass die Interop-Assembly nicht geändert wurde (da es noch Version 1.0.0.0 enthält) und überspringt die Aktualisierung, und das Programm funktioniert nicht.

Wie kann ich die Versionsnummer steuern, die der Interop-Assembly zugewiesen ist?

+0

ho1 ist korrekt, Sie können TlbImp verwenden, um die Interop-DLL zu generieren und eine Version anzugeben. Sie können dies zu einem Vorbereitungsschritt machen. –

Antwort

2

Es ist eine Weile her, dass ich mich vielleicht falsch erinnere, wie das funktioniert, aber ich denke, dass Sie in der Lage sein könnten, zu tun, was Sie wollen, wenn Sie Tlbimp statt VS die Wrapper erstellen.

Möglicherweise können Sie es mit dem asmversion Parameter tun und ansonsten könnte es möglich sein, wenn Sie ihm einen starken Namen geben mit dem keyfile Parameter.