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?
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. –