Warum nicht das Büro PIA richtig installiert werden, um den GAC?
Ich arbeite derzeit an einem c# - Projekt, wo muss ich den Zugriff auf Outlook. Die Entwicklung erfolgt auf zwei verschiedenen Rechnern, von denen office installiert ist, und von denen nicht. Ich zuvor gefragt, wie kompiliere mein Projekt gegen die outlook-com-Objekt, und in einem der Kommentare vorgeschlagen, dass ich kompiliert office primary interop assembly oder PIA. In meinem heruntergeladenen Office 2007 PIAes ist eine msi-Datei, soll die Installation einer Reihe von PIAs für die verschiedenen Teile von Office. Mein problem ist, dass dies scheinbar nicht passiert. Auf meinem Büro-weniger-Maschine, nach der Eingabe
msiexec /i o2007pia.msi
an einer Eingabeaufforderung, den windows-installer startet, die Meldung zeigt "Bitte warten Sie, während Windows konfiguriert Microsoft Office 2007 Primary Interop Assemblies. Erfassen erforderlicher Informationen" zusammen mit einem Fortschrittsbalken bei etwa 33%, nach dem es verschwindet, und nach denen
gacutil -l microsoft.office.interop.outlook
liefert keine Ergebnisse für Office 2007 (bekomme ich ein Ergebnis, welches versioniert 10.0.4504.0 und ist das Ergebnis einer früheren Installations-Versuch mit einer falschen version von Office., aber Office-2007-PIAs haben große version (12.)
Sehe ich ein paar mögliche Erklärungen, von denen keine die ich wirklich glauben, in:
-
GAC nicht umgehen kann, mehrere Versionen der gleichen assembly, und so wird nicht lassen Sie mich eine neuere version installieren.
-
Irgendwie weiß ich nicht erfüllen Anforderungen. Diese sind im Grunde, XPsp2, und .Net 1.1 oder höher, die ich beide habe. Die Anforderungen-Abschnitt auch erwähnt, dass der download funktioniert mit office 2007, was ich nicht installiert habe, aber ich glaube nicht, dass dies ist eine Anforderung. Das ist beides da ist, ist nicht angegeben als Voraussetzung, aber auch, weil Hans Passant in einem Kommentar zu meine ursprüngliche Frage war sehr sicher, dass die PIAs könnten gezielt eingesetzt werden, für die Entwicklung ohne Office installiert wird, so würde es nicht Sinn machen, der von Office als Voraussetzung.
Also hat jemand eine Idee, warum die Office-2007-PIAs nicht korrekt installiert, oder was ich tun könnte, um näher an eine Antwort? Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen. Danke.
InformationsquelleAutor der Frage Boris | 2011-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schlug ich diesem vor einer Weile, mit einem ähnlichen Projekt. Die PIA redistributable wird installiert nur die PIAs wenn Office bereits auf dem Computer installiert ist (was irgendwie Sinn macht, aber kann ärgerlich sein, wenn es um die Bereitstellung)
Visual Studio installieren, sollte die Office-PIAs in einen Ordner unter eigene install-Verzeichnis - beispielsweise auf meinem Rechner habe ich eine Kopie aller PIAs unter:
Ist es möglich, dass diese nur installiert, wenn Sie Office auf Ihrem Computer zu der Zeit VS installiert ist, oder gibt es vielleicht eine option installieren in der VS-Installationsprogramm zur Installation der VSTO (Visual Studio Tools for Office).
Wenn Ihr problem ist, nur mit immer einem build arbeiten an der Entwicklung der Maschine, die nicht im Büro, dann könnten Sie versuchen, ein erneutes ausführen des VS installer und sehen, wenn Sie eine option zum installieren der VSTO, oder versuchen Sie eine google-Suche und sehen, ob es eine separate VSTO download
Ansonsten würde ich einfach kopieren Sie die primären Interop-Assemblys aus diesem Ordner in eine ähnliche Lage auf der anderen Dev-box.
InformationsquelleAutor der Antwort Paul Nearney
für den ersten Punkt, ich bin 100% sicher, dass GAC wurde implementiert, um die Unterstützung der Versionierung von gleichen Baugruppen können Sie erstellen eine assembly aufgerufen myCode.dll und registrieren Sie Ihre version 1.0 des GAC, dann bauen Sie die version 1.1 und 2.0, und fügen Sie beide in den GAC, auch wenn alle von Ihnen haben die gleiche Datei-Namen, GAC halten und jede Anwendung wird in der Lage sein, um die richtige version, je nach Montage-verbindliche Informationen zur Verfügung, im Grunde jede Anwendung, die einen Verweis auf die version 1.0 noch bekommt, es sei denn angegeben und ist nicht beeinflusst durch die Anwesenheit der neueren version.
Schließlich, wenn Sie die Anwesenheit der Outlook-PIA im gac sehen Sie nur die neueste, verfügbare version und nicht alle von Ihnen, aber Sie sicherlich in der Lage sein sollten, irgendwie drücken Sie eine andere version im GAC sowieso.
InformationsquelleAutor der Antwort Davide Piras