Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excelversionen

2 views
Skip to first unread message

Hendrik Petzold

unread,
Oct 13, 2008, 5:46:05 AM10/13/08
to
Ich hatte eine Anwendung unter VS2003 entwickelt und die Microsoft Excel 11.0
Object Library eingebunden (Office 2003). Diese wurde auf einem Server
bereitgestellt. Die Nutzer haben auf ihren PC's Office 2003 installiert und
nutzen diese Anwendung.
Nun habe ich auf meinem Entwickler PC nur noch Office2007 und VS2005.
Ich habe die Anwendung konvertiert und Microsoft Excel 12.0 Object Library
eingebunden und bereitgestellt. Die Nutzer haben nachwie vor Office 2003.
Nun habe ich bei den Nutzern (nachdem sie eine Fehlermeldung erhielten) die
Microsoft.Office.Interop.Excel.dll (Version 12) in das jeweilige Verzeichnis
C:\Windows\Assembly\GAC kopiert. Die Nutzer können damit die Anwendung
fehlerfrei nutzen.
Nun meine Frage, war dies der korrekte Weg, oder hätte ich anders reagieren
müssen?

Ich hoffe, das ich mein Problem verständlich dargelegt habe.

MfG
Hendrik

Frank Dzaebel

unread,
Oct 13, 2008, 6:04:52 AM10/13/08
to
Hallo Hendrik,

> ... Anwendung unter VS2003 entwickelt und die
> Microsoft Excel 11.0 Object Library eingebunden ...


> Nun habe ich auf meinem Entwickler PC nur noch
> Office2007 und VS2005.

Du solltest trotzdem normal gegen die
unterste zu unterstützende Office-Version
entwickeln und deployen.
Mit der 11.0-Lib kannst Du für Office 2003
und 2007 entwickeln. Aber nicht mit der 12.0
Lib für Office 2003.
Ggf. sind dann einige Office-Methoden latebind
aufzurufen, weil bei z.B. der Methoden-Signatur
einige Parameter hinzugekommen sind.


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

Hendrik Petzold

unread,
Oct 13, 2008, 7:04:01 AM10/13/08
to
Danke für die schnelle Information.
Bedeutet ...nicht mit der 12.0 Lib für Office 2003,
das meine Lösung mit dem kopieren der 12er dll in das GAC Verzeichnis
nicht korrekt ist?

mfg
Hendrik

Frank Dzaebel

unread,
Oct 13, 2008, 7:45:54 AM10/13/08
to
Hallo Hendrik,

> Danke für die schnelle Information.

gern.


> ..Bedeutet ...nicht mit der 12.0 Lib für Office 2003,


> das meine Lösung mit dem kopieren der 12er dll
> in das GAC Verzeichnis nicht korrekt ist?

ja, einfach *nicht* für Office 2003 die 12.0-Lib benutzen.
Für Office 2003 und 2007 für gleichzeitige
Unterstützung nutze die tiefste zu unterstützende,
die 11.0 Lib. Neue Signaturen ggf. latebind
implementieren.

Thorsten Doerfler

unread,
Oct 13, 2008, 8:12:14 AM10/13/08
to
Hendrik Petzold schrieb:

> Nun habe ich auf meinem Entwickler PC nur noch Office2007 und VS2005.
> Ich habe die Anwendung konvertiert und Microsoft Excel 12.0 Object Library
> eingebunden und bereitgestellt. Die Nutzer haben nachwie vor Office 2003.
> Nun habe ich bei den Nutzern (nachdem sie eine Fehlermeldung erhielten) die
> Microsoft.Office.Interop.Excel.dll (Version 12) in das jeweilige Verzeichnis
> C:\Windows\Assembly\GAC kopiert. Die Nutzer können damit die Anwendung
> fehlerfrei nutzen.
> Nun meine Frage, war dies der korrekte Weg, oder hätte ich anders reagieren
> müssen?

Das ist eigentlich kein Problem. Die PIAs für Office 2007 sind
vollkommen abwärtskompatibel zu den PIAs für Office 2003. Wenn die
2007er Version installiert ist, wird die 2003er ohnehin dorthin umgeleitet.

2007 Microsoft Office System Primary Interop Assemblies
http://blogs.msdn.com/excel/archive/2006/06/19/636534.aspx

Office Primary Interop Assemblies
http://msdn.microsoft.com/en-us/library/15s06t57(VS.80).aspx

Beim Entwickeln für Office 2003 ist es allerdings ratsam die PIAs für
Office 2003 zu verwenden, damit Du hier nicht in die Verlegenheit kommst
Methoden zu nutzen, die erst mit 2007 bereitstehen.

Thorsten Dörfler
--
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Frank Dzaebel

unread,
Oct 13, 2008, 8:50:48 AM10/13/08
to
Hallo Thorsten,

> Das ist eigentlich kein Problem. Die PIAs für Office 2007 sind
> vollkommen abwärtskompatibel zu den PIAs für Office 2003.

Nein, die 2007 PIAs sind sind nicht abwärtskompatibel
zu den PIAs für Office 2003, deswegen bekommt man
auch Exceptions in seinem Fall.
Die 2003-PIAs sind *aufwärtskompatibel* zu den 2007ern.
Siehe auch mein Posting.
Steht aber auch so in Deinen Links.
Deswegen - es war bisher immer so bei den
Office PIAs/IAs - entwickelt man normal immer gegen
die tiefste zu unterstützende IA/PIA.
Mit Office 2007 kann man aber natürlich in
2003-Formaten speichern - das ist aber etwas anderes.

Thorsten Doerfler

unread,
Oct 13, 2008, 11:37:33 AM10/13/08
to
Hallo Frank,
Frank Dzaebel schrieb:

>> Das ist eigentlich kein Problem. Die PIAs für Office 2007 sind
>> vollkommen abwärtskompatibel zu den PIAs für Office 2003.
>
> Nein, die 2007 PIAs sind sind nicht abwärtskompatibel
> zu den PIAs für Office 2003, deswegen bekommt man
> auch Exceptions in seinem Fall.

Die Office 2007 PIAs funktionieren mit Office 2003. Punkt.

Frank Dzaebel

unread,
Oct 13, 2008, 1:14:29 PM10/13/08
to
Zum Abschluss nochmal meine fachlichen Punkte ... (EOT hier)

- Die 2007 PIAs sind sind nicht 100% abwärtskompatibel
zu den PIAs für Office 2003, deswegen wird man
Exceptions in einigen Fällen bekommen. Dies
ist lange bekannt, aber auch aus der Praxis vielfach im
Netz zu finden:

"When i build using office 2007 PIA and install
it on a machine with office 2003. It dit not work."

[ArtLeo's WebLog : Office System 2007 PIA Compatibility]
http://blogs.msdn.com/artleo/archive/2006/03/24/560418.aspx

Mir ist nicht bekannt, das dies von Mircrosoft unterstützt wird -
nur die Gegenrichtung wird unterstützt.

- Office 2003-PIAs sind *aufwärtskompatibel* zu
den 2007ern. Dies wird durch Policy-Assemblies ermöglicht,
*nicht* die Rückrichtung. In der Rückrichtung können
aber Methoden, die keinen Breaking-Changes
unterworfen sind, funktionieren, wenn sie die
gleiche Dispatch-ID und Signatur haben (Reines COM).

- Normal wird am saubersten gegen die exakte
PIA implementiert. (auch vielfach nachlesbar)

- ist keine exakte PIA-Implementierung möglich/gewünscht,
codiert man immer gegen die tiefste zu unterstüzende
Office-PIA / IA. (Mehrfach in der MSDN zu ergoogeln)


Antwort auf die Frage des OPs, ob seine Benutzung
der 12er-Lib für ein sauber Weg ist: Nein.
Für viele Methoden mag das klappen,
aber bei einigen kann es knallen.
Vorzugsweise beim Kunden.

Thorsten Doerfler

unread,
Oct 13, 2008, 2:29:04 PM10/13/08
to
Frank Dzaebel schrieb:

> "When i build using office 2007 PIA and install
> it on a machine with office 2003. It dit not work."

Natürlich, die 2007er Interops wollen installiert sein, mit den 2003ern
kann das nicht funktionieren. Weiß jedes Kind. Weiß auch nicht welche
Relevanz Kommentare in einem Blog haben sollen.

> - ist keine exakte PIA-Implementierung möglich/gewünscht,
> codiert man immer gegen die tiefste zu unterstüzende
> Office-PIA / IA. (Mehrfach in der MSDN zu ergoogeln)

Nichts anderes empfehle ich, ändert aber nichts am Rest. Warum Du immer
dagegen wettern musst, ist mir ein Rätsel. Im Gegensatz zu Weblog
Kommentaren, habe ich zig Kunden bei denen das funktioniert.

> Antwort auf die Frage des OPs, ob seine Benutzung
> der 12er-Lib für ein sauber Weg ist: Nein.

Ich melde mich, wenn das Rollout auf 12.000 Clients durch ist. ;-)

Herfried K. Wagner [MVP]

unread,
Oct 13, 2008, 2:32:24 PM10/13/08
to
"Frank Dzaebel" <tcnt.D...@daimlerchrysler.com> schrieb:

>Die 2003-PIAs sind *aufwärtskompatibel* zu den 2007ern.

Das würde bedeuten, daß Code, der gegen die Office-2007-PIAs entwickelt
wurde, auch immer mit den Office-2003-PIAs läuft. Das ist aber nicht der
Fall.

Tatsächlich ist es so, daß Anwendungen, die gegen die Office-2003-PIAs
entwickelt wurden, auch problemlos ausgeführt werden können, wenn nur die
Office-2007-PIAs installiert sind.

Inwieweit Thorstens Aussage zutrifft, daß die Office-2007-PIAs mit Office
2003 funktionieren (wenn nur die Möglichkeiten aus den Office-2003-PIAs
genutzt werden), kann ich nicht sagen. Der Downloadseite von Microsoft
zufolge erfordern sie Microsoft Office System 2007:

Download details: 2007 Microsoft Office System Update: Redistributable
Primary Interop Assemblies
<URL:http://www.microsoft.com/downloads/details.aspx?familyid=59DAEBAA-BED4-4282-A28C-B864D8BFA513&displaylang=en>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Thorsten Doerfler

unread,
Oct 13, 2008, 2:58:51 PM10/13/08
to
Hallo Herfried,
Herfried K. Wagner [MVP] schrieb:

> Inwieweit Thorstens Aussage zutrifft, daß die Office-2007-PIAs mit Office
> 2003 funktionieren (wenn nur die Möglichkeiten aus den Office-2003-PIAs
> genutzt werden), kann ich nicht sagen. Der Downloadseite von Microsoft
> zufolge erfordern sie Microsoft Office System 2007:

Sie lassen sich auch auf Rechnern mit Office 2003 installieren und das
ist kein Zufall. Auf Rechnern ohne Office schlägt die Installation fehl.
Haben wir bereits zigfach gemacht und würden das sicher nicht tun, wenn
wir da nicht gesicherte Informationen hätten, dass das funktioniert.

Frank Dzaebel

unread,
Oct 14, 2008, 7:47:03 AM10/14/08
to
Hier auch nochmal die Bestätigung meiner
Angaben durch [MSFT]: "nicht supportet":

http://groups.google.com/group/microsoft.public.office.developer.automation/msg/5a474198ea727ac8

es kann sogar Crash's geben.

[Andrew Whitechapel : Why is VS development not supported with
multiple versions of Office?]
http://blogs.msdn.com/andreww/archive/2007/06/08/why-is-vs-development-not-supported-with-multiple-versions-of-office.aspx

Herfried K. Wagner [MVP]

unread,
Oct 14, 2008, 9:31:44 AM10/14/08
to
"Frank Dzaebel" <tcnt.D...@daimlerchrysler.com> schrieb:

>Hier auch nochmal die Bestätigung meiner
>Angaben durch [MSFT]: "nicht supportet":
>
>http://groups.google.com/group/microsoft.public.office.developer.automation/msg/5a474198ea727ac8

Dennoch sehe ich keinen Widerspruch zu Thorstens Aussage.

Es liegt ja auf der Hand, daß ein installiertes Office 2003 nicht über die
Funktionalität von Office 2007 verfügt und Thorsten hat auch, soweit ich
sehe, nicht behauptet, daß exklusiv in Office 2007 verfügbare Funktionen
über die Office-2007-PIAs genutzt werden können, wenn nur Office 2003
installiert ist. Klar, daß dieses Szenario nicht 100 % unterstützt werden
kann!

Nichts anderes sagt auch Deine unzureichend wiedergegebene
Microsoft-Aussage, die sinngemäß lautet: Es wird nicht zu 100 % unterstützt,
weil es technisch nicht möglich ist. "not 100% supported" ist etwas anderes
als "not supported".

>es kann sogar Crash's geben.

Das ist im Falle der Nutzung von in Office 2003 nicht verfügbarer
Funktionalität naheliegend.

Frank Dzaebel

unread,
Oct 14, 2008, 10:28:05 AM10/14/08
to
Hallo Herfried,

> sehe ich keinen Widerspruch zu Thorstens Aussage

zwei VBler ... ;-)

Thorsten schrieb:


"Die PIAs für Office 2007 sind vollkommen

abwärtskompatibel zu den PIAs für Office 2003."

das ist falsch (wurde ja schon gesagt)
und geht technisch garnicht.

Excel 2003 mit Office 2007 PIAs sind auch
nicht von Microsoft supported.
Die Benutzung ist da auf eigene Gefahr.
Ist auch logische Richtlinie. Wie man
richtig vorzugehen hat, ist meiner Summary
zu entnehmen.
http://groups.google.com/group/microsoft.public.de.german.entwickler.dotnet.csharp/msg/275d2b2bf4f67d84

Die Informationen von Microsoft in:
http://groups.google.com/group/microsoft.public.office.developer.automation/msg/5a474198ea727ac8

Gute Infos auch in:

[Andrew Whitechapel : Why is VS development not supported with
multiple versions of Office?]
http://blogs.msdn.com/andreww/archive/2007/06/08/why-is-vs-development-not-supported-with-multiple-versions-of-office.aspx

EOT.

Herfried K. Wagner [MVP]

unread,
Oct 14, 2008, 10:42:02 AM10/14/08
to
"Frank Dzaebel" <tcnt.D...@daimlerchrysler.com> schrieb:

>Thorsten schrieb:
> "Die PIAs für Office 2007 sind vollkommen
> abwärtskompatibel zu den PIAs für Office 2003."
>
>das ist falsch (wurde ja schon gesagt)
>und geht technisch garnicht.

Thorsten legt genau in dem Beitrag, den Du zitierst, klar, was er meint:

---


Beim Entwickeln für Office 2003 ist es allerdings ratsam die PIAs für
Office 2003 zu verwenden, damit Du hier nicht in die Verlegenheit kommst
Methoden zu nutzen, die erst mit 2007 bereitstehen.

---

Demnach bezog er sich nur auf jene Teile, die auch schon in Office 2003
enthalten sind.

Frank Dzaebel

unread,
Oct 14, 2008, 11:14:03 AM10/14/08
to
Hallo Herfried,

> >Thorsten schrieb:
> >  "Die PIAs für Office 2007 sind vollkommen
> >   abwärtskompatibel zu den PIAs für Office 2003."
>

> Frank:


> >das ist falsch (wurde ja schon gesagt)
> >und geht technisch garnicht.

auch danach im nächsten Posting noch:

Thorsten schrieb:


"Die Office 2007 PIAs funktionieren
mit Office 2003. Punkt."

Das ist einfach falsch. Sorry.
Zusätzlich wird es nicht von Microsoft unterstützt.

Im Punkt "... Office 2003 ist es allerdings


ratsam die PIAs für Office 2003 zu verwenden"

sind wir uns ja einig. Steht ja auch in meinen
Postings.

Herfried K. Wagner [MVP]

unread,
Oct 14, 2008, 11:24:36 AM10/14/08
to
"Frank Dzaebel" <tcnt.D...@daimlerchrysler.com> schrieb:

>> >Thorsten schrieb:
>> > "Die PIAs für Office 2007 sind vollkommen
>> > abwärtskompatibel zu den PIAs für Office 2003."
>>
>> Frank:
>> >das ist falsch (wurde ja schon gesagt)
>> >und geht technisch garnicht.
>
>auch danach im nächsten Posting noch:
>
> Thorsten schrieb:
> "Die Office 2007 PIAs funktionieren
> mit Office 2003. Punkt."
>
>Das ist einfach falsch. Sorry.

Ob das stimmt, kann ich nicht sagen, ich habe keine Erfahrungswerte. Und die
Microsoft-Aussage widerspricht dem auch nicht.

Wenn aber gegen die 2003er-PIAs kompilierter Code kompatibel zu den
2007er-PIAs ist, dann könnte das auch in die umgekehrte Richtung der Fall
sein, sofern nur die Merkmale aus den Office-2007-PIAs verwendet werden, die
auch in Office 2003 (bzw. den Office-2003-PIAs) enthalten sind.

>Zusätzlich wird es nicht von Microsoft unterstützt.

Das heißt noch lange nicht, daß es nicht funktioniert.

Frank Dzaebel

unread,
Oct 14, 2008, 12:06:15 PM10/14/08
to

fachlich ist alles gesagt.
Schönerweise jetzt auch von MS bestätigt.http://groups.google.com/group/microsoft.public.de.german.entwickler.dotnet.csharp/msg/275d2b2bf4f67d84

es kann sogar Crash's geben.

[Andrew Whitechapel : Why is VS development not supported with

"Die PIAs für Office 2007 sind vollkommen


abwärtskompatibel zu den PIAs für Office 2003."

diese Aussage ist falsch (wurde bereits gesagt)
und geht technisch garnicht.


Thorsten Doerfler

unread,
Oct 14, 2008, 1:53:30 PM10/14/08
to
Frank Dzaebel schrieb:

> fachlich ist alles gesagt.
> Schönerweise jetzt auch von MS bestätigt.
> [MSFT]: "nicht supportet":

In der Diskussion:
http://groups.google.com/group/microsoft.public.office.developer.automation/browse_thread/thread/21fb40627b6cc616/5a474198ea727ac8?#5a474198ea727ac8

Stehts zum Glück nicht ganz so einseitig, wie Frank das gerne hätte.
Aber danke Frank, dass Du das geklärt hast.

> "Die PIAs für Office 2007 sind vollkommen
> abwärtskompatibel zu den PIAs für Office 2003."
>
> diese Aussage ist falsch

Immer noch nicht. Aber es gibt zum Glück Entwickler, die das schon
richtig verstehen. Das beruhigt mich immer wieder.

Frank Dzaebel

unread,
Oct 14, 2008, 2:27:25 PM10/14/08
to
Hallo Thorsten,

> Aber danke Frank, dass Du das geklärt hast.

gern. Ist zwar Aufwand, aber für die Community.

Wir (ich und Ji Zhou [Microsoft]) werden ja
noch den Test auf Signatur-unterschiedliche
Methoden und hoffentlich noch Enum-Erweiterungen
machen, die ja keine Breaking-Changes sind,
wobei Breaking Changes ja eh nicht funktionieren (crashen).
Dauert also auch noch ein wenig.
Das dumme an der Sache, wenn MS
davon Wind bekommt, ist die ganze Office-
Umgebung dadurch nicht mehr supported.
Bei uns undenkbar, aber da unterstützen ja eh
zu einem Gutteil MS-Leute diese Entscheidungen mit.

Vielleicht erhellt es ja zumindest auch ein wenig die
Sicht für Euch, falls Fehler bei Euren Usern
auftreten.

Vielleicht sollte auch nochmal der gute
MSDN-Blog-Artikel genannt werden, wo
auch ausdrücklich der Nicht-Support betont wird,
und speziell die Aussage, das bloss nicht
in den GAC zu installieren. Der OP hat dies
ja erwähnt und fragte, ob dies ok sei, auch hier also: Nein.

[Andrew Whitechapel : Why is VS development not supported with multiple
versions of Office?]
http://blogs.msdn.com/andreww/archive/2007/06/08/why-is-vs-development-not-supported-with-multiple-versions-of-office.aspx

(sucht u.a. nach support)

Frank Dzaebel

unread,
Oct 16, 2008, 3:35:09 AM10/16/08
to
Zusammenfassung der Microsoft-Korrespondenz (rückübersetzt):

1) Die Ausführung von Applikationen, mit Office 2007 PIAS
auf reinen Office 2003 Maschinen ist definitiv *nicht*
von Microsoft supported.

Es ist wahrscheinlich, dass Microsoft dann auch andere
Office-Szenarios nicht supporten kann, wenn jemand das
oben genannte nicht supportete Szenario benutzt. Gründe
sind u.a. Seiteneffekte - wenn zum Beispiel jemand die
Office 2007 PIAs in den GAC des 2003 Systems spielt.

2) Typische Szenarien möglicher Crashes (wenn jemand [1] benutzt)
sind Methoden/Eigenschaften, die andere Namen in beiden
PIAs haben.

Diese fallen bei Excel 2007 PIA in 3 Klassen:

- Methoden mit dem Suffix: "WithVersion" sind neu
in 2007 (die alten sind ohe Suffix).
Die neuen können/werden auf 2003 Office crashen.
Die alten können/werden funktioniern (kein MS Support).

- Methoden mit dem Suffix: "Ex" sind neu in Excel 2007
(die alten sind ohne Suffix)
Die neuen können/werden auf 2003 Office crashen.
Die alten können/werden funktioniern (kein MS Support).

- Einige Eigenschaften sind READ-WRITE in Excel 2007.
Aber in Excel 2003 sind sie z.T. READ-ONLY. Als Folge,
wenn man einen Setter über die 2007 PIA in Excel 2003 benutzt,
kann/wird dies zu einem Crash führen.

3) Methoden, die die gleichen Namen und Signatur und keine
Breaking Changes haben, sind ~normal funktionsfähig,
aber werden nicht von Microsoft supported.

4) Nur die andere Richtung, wo 2003 PIAs auf Office 2007
benutzt werden, ist von Microsoft supported.
Technisch passiert das über Richtlinien-Assemblies.

5) Normalerweise ist es best practice, genau gegen die PIA des
benutzten Office zu codieren.
Wenn nicht, sollte die tiefste (für den Kunden) zu
unterstützende PIA/IA zur Implementation benutzt werden.


"Yes, I totally agree with your summary." Ji Zhou [MSFT] (Microsoft)
http://groups.google.com/group/microsoft.public.office.developer.automation/msg/b9a1583351cfd02d

Hendrik Petzold

unread,
Oct 16, 2008, 5:58:00 AM10/16/08
to
Danke für die Hilfe,
da ist ja eine interessante Diskussion entstanden!
Hendrik
0 new messages