VS 2010 Kompatibilität eingebetteter Office-PIAs

10/06/2010 - 09:03 von Sven | Report spam
Hallo,

Visual Studio 2010 besitzt ja die Neuerung, dass ich Funktionen von
Interop-Assemblies in meine eigene Assembly einbetten kann und diese dann
nicht mit verteilt oder auf dem Client bereitgestellt werden müssen.

Mein Frage bezieht sich auf die Abwàrtskompatibiliàt:
Ich habe in einem Testprojekt die Version 14 der Excel-Interop-Assembly
eingebunden. Das Programm öffnet lediglich eine Instanz von Excel. An einem
Rechner mit installiertem Excel 2003 öffnet er wie gewünscht auch dieses.
Muss ich mir Gedanken wegen der Abwàrtskompatibilitàt machen, oder
funktioniert das problemlos, wenn ich nur Funktionen verwende, die auch in
Excel 2003 verfügbar sind? Wird so etwas von Microsoft supportet oder passt
die Interop-Assembly in Version 14 eigentlich nur zu Excel 2010?

Vielen Dank für die Hilfe,
Sven
 

Lesen sie die antworten

#1 FrankDzaebel
10/06/2010 - 09:45 | Warnen spam
Hallo Sven,

Visual Studio 2010 besitzt ja die Neuerung,
dass ich Funktionen von Interop-Assemblies in
meine eigene Assembly einbetten kann und diese dann
nicht mit verteilt oder auf dem Client bereitgestellt
werden müssen.



~ja.


Mein Frage bezieht sich auf die Abwàrtskompatibiliàt:
Ich habe in einem Testprojekt die Version 14 der Excel-
Interop-Assembly eingebunden.



als Verweis auf das lokal kopierte IA (Interop Assembly) ?



Muss ich mir Gedanken wegen der Abwàrtskompatibilitàt machen.



dann IMHO ja.

Durch die mögliche Einbettung typeàquivalenter
COM-Typen in .NET 4.0 (no Pia) ist die Bereitstellung
zwar vereinfacht und die Assembly-Grösse ggf.
verkleinert, aber beim Ansprechen von tieferen
COM-Methoden musst Du trotzdem deren
(ggf. andere) Signatur beachten. Gut - hilfreich
für Multitargeting sind in den meisten Fàllen
(u.a.) die optionalen Parameter in C# 4.0 (wenn in
Methoden spàterer Signaturen keine wichtigen
"benutzten" Zusàtze sind).

[Benannte und optionale Argumente (C#-Programmierhandbuch)]
http://msdn.microsoft.com/de-de/lib...64739.aspx

Ausserdem müsstest Du (bei "NoPia") für Kompatibilitàt
mit àlteren Framework-Versionen ggf. doch
PIAs erzeugen. Es gibt aber auch die Möglichkeit
der parallelen Ausführung der CLR 2.0 und 4.0
(->useLegacyV2RuntimeActivationPolicy)

[Typàquivalenz und eingebettete Interop-Typen]
http://msdn.microsoft.com/de-de/lib...97297.aspx

[Entwurfsüberlegungen für die Interoperation]
http://msdn.microsoft.com/de-de/lib...ax4kh.aspx
______________

Normal empfehle ich im COM Szenario immer die
gegen die tiefste zu unterstützende Version zu
entwickeln. Diese geht dann normal (zu ~98%) auch in den
folgenden Versionen, wenn man nicht gerade ein
Breaking Change erwischt hat.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen