Microsoft Office PIA und wie zu referenzieren und bauen korrekt von WebApp
-
22-08-2019 - |
Frage
Ich bin derzeit versucht, auf Teamcity zu bauen, die Microsoft.Office.Interop dll verwendet. Dies wird bauen und funktioniert lokal wie ich Office installiert, aber wenn es auf Teamcity zu bauen versucht, es nicht, da es keinen Bezug hat.
Ich kann die PIA ausschüttbaren nicht installieren, da ich eine Fehlermeldung, dass das Office 2003 muss installiert werden. Ich möchte nicht, Office auf dem Server installieren.
Gibt es eine Möglichkeit, dies zu umgehen?
Lösung
Wenn alle Teamcity-Server tut ein Build ist, dann fügen Sie den Microsoft.Office.Interop DLL zu einem Ordner Verweis für das Projekt, und konfigurieren Sie Ihr Projekt in sehen, dass verweist Ordner.
Wenn jedoch der Teamcity-Server auch Tests ausgeführt wird, auf dem Office Interop verwenden, dann werden Sie auf Probleme stoßen, es sei denn, Sie haben Office auf dem Rechner installiert, die Tests ausgeführt werden.
Andere Tipps
Nicht wirklich - das Interop-DLL ist nur eine Thunk Schicht zwischen Ihrem .NET-Code und dem tatsächlichen (COM) Office-Code. Wenn Sie die Interop DLL ohne die zugrunde liegende Office-DLL haben, dann werden alle Anrufe in die Interop fehl, weil das Interop wird die COM-Objekte aufrufen wollen es macht interoperabel.
Diese COM-Objekte sind Office-Objekte, so dass Sie einen Teil von Office müssen installiert sein.