Konfigurieren von vom SharePoint-Anbieter gehosteten Add-Ins für die Verteilung
Auf dieser Seite werden Probleme erläutert, die beim Freigeben eines vom SharePoint-Anbieter gehosteten Add-Ins für andere Entwickler oder beim Abrufen einer Kopie aus einem Quellcodeverwaltungssystem wie Team Foundation Server, Git oder Visual Studio Team Services auftreten können.
Alle vom SharePoint-Anbieter gehosteten Add-Ins, die mit Visual Studio erstellt wurden, enthalten ein NuGet-Paket, das SharePoint-spezifischen Code und Verweise auf die Webanwendung hinzufügt, die als RemoteWeb für das SharePoint-Add-In dient.
Das NuGet-Paket, das dem Webanwendungsprojekt von den Office-Entwicklertools in Visual Studio hinzugefügt wurde, ist nicht in der NuGet-Paketregistrierung vorhanden. Daher schlagen Versuche, eine NuGet-Paketwiederherstellung durchzuführen, fehl, da kein übereinstimmende Paket gefunden werden kann.
Grundlegendes zum Problem
Die Office-Entwicklertools für Visual Studio, Version 12.0.31105, fügt Webanwendungen, die als vom Anbieter remoteweb für SharePoint gehostete Add-Ins erstellt wurden, ein NuGet-Paket hinzu. Dieses Paket, das App für SharePoint Web Toolkit, fügt dem Webprojekt die folgenden Elemente hinzu:
- Assemblys und Verweise auf die CSOM-Assemblys (Client-Side Object Model) von SharePoint.
- Die Codedatei TokenHelper.cs, die den Authentifizierungsprozess für Add-Ins unterstützt.
- Die Codedatei SharePointContext.cs, die beim Erstellen und Verwalten eines SharePoint-Kontexts innerhalb der Webanwendung hilft.
Die Funktionsweise von Visual Studio besteht darin, dass es oder Add-Ins in der Regel eine lokale Kopie des NuGet-Pakets enthält, sodass Entwickler nicht immer mit dem Internet verbunden sein müssen, um die NuGet-Pakete herunterzuladen. Das Paket, das die Tools enthalten, weist die ID AppForSharePoint16WebToolkit auf.
Wenn Projekte an die Quellcodeverwaltung committet werden, werden die Pakete in der Regel nicht als Teil des Commits eingeschlossen, da sie viel zusätzlichen Speicherplatzbedarf erhöhen und die Größe eines Pakets unnötig erhöhen können, wenn es für andere Entwickler freigegeben wird. Daher ist eine der ersten Aufgaben, die Entwickler nach dem Abrufen einer Kopie des Projekts aus der Quellcodeverwaltung ausführen, die NuGet-Paketwiederherstellung.
Die Herausforderung besteht darin, dass ein Paket mit derselben ID in der NuGet-Paketregistrierung nicht vorhanden ist. Es gibt kein Paket mit der ID AppForSharePoint16WebToolkit. Stattdessen wurde genau dasselbe Paket zur NuGet-Paketregistrierung hinzugefügt wie AppForSharePointWebToolkit (beachten Sie das Fehlen von in 16
der ID).
Vorbereiten eines vom Anbieter gehosteten Add-In-Projekts für die Quellcodeverwaltung und -verteilung
Bis die Office-Entwicklertools für Visual Studio aktualisiert wurden, um dieses Problem zu beheben, empfehlen wir, das Projekt vor dem Committen an Ihr Quellcodeverwaltungssystem zu ändern, unabhängig davon, ob Sie Team Foundation Server, Visual Studio Team Services, Git oder eine andere Projektmappe verwenden.
Suchen Sie nach dem Erstellen des Projekts in der packages.config Datei des Projekts, und suchen Sie nach einem Paket mit der ID AppForSharePoint16WebToolkit. Die sicherste Möglichkeit zum Aktualisieren des Projekts besteht darin, das Paket zu deinstallieren und dann neu zu installieren.
Öffnen Sie die Paket-Manager-Konsole in Visual Studio, und geben Sie Folgendes ein, um das Paket zu deinstallieren:
PM> Uninstall-Package -Id AppForSharePoint16WebToolkit
Hinweis
Wenn bei der Deinstallation ein Fehler ausgelöst wird, dass das Paket nicht gefunden wird, entfernen Sie einfach den Paketverweis manuell aus der packages.config Datei, und speichern Sie Ihre Änderungen.
Installieren Sie nun die öffentliche Version desselben NuGet-Pakets aus der öffentlichen Registrierung:
PM> Install-Package -Id AppForSharePointWebToolkit