This post will cover a solution for a new problem related to SPFx solutions not showing in Apps in SharePoint On Premises. Before diving in the troubleshooting, let me give you some context!
In September 2017, Microsoft announced support to the SharePoint Framework in the (not so new) SharePoint 2016. It is a great feature that will let developers explore the new framework in the cloud and on premises, allowing them to embrace the new modern era of SharePoint with SPFx apps.
Also, if you don’t know anything about the SharePoint Framework, please read this guidance to get in touch with the new trends for SharePoint Development.
The step-by-step to explore this development is pretty straightforward. Just do as the Microsoft tutorial suggests to build a web part and have an environment prepared for apps in your SharePoint 2016 farm.
Some important notes are:
- The SharePoint Framework version must be 1.1.0 to work on SharePoint 2016;
- SPFx extensions are in preview for this version;
- The SharePoint Web Parts will be presented as normal Web Parts in the Ribbon;
- There is no modern experience available yet;
- You must use a CDN or even the Style Library to store the published files;
If everything is fine, you can just upload your App Package to your App Catalog and it will work.
But that wasn’t my case… as you may now…
The problem with SPFx solutions not showing up
Everytime I deployed my package, everything was okay but the app just doesn’t show up in my Apps list in the Site Content. After some investigation in the ULS Logs, I found the following message:
System.Runtime.InteropServices.COMException: One or more field types are not installed properly. Go to the list settings page to delete these field., StackTrace: at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData() at Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPCorporateCatalogAccessorBase.GetListItems(String queryString, UInt32 rowLimit, String viewFields, String pagingInfo, SPListItemCollection& listItemCollection) at Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPCorporateCatalogAccessorBase.GetApps(String queryString, UInt32 maxApp) at Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPCorporateCatalogAccessorBase.GetApps(SPAppSubtype subtype, String category, CorporateCatalogSortOption sort, String keywor... 50ba439e-6b6e-30d4-40a7-5f869814e185 ...d, UInt32 maxApp, Boolean& tooManyApps) at Microsoft.SharePoint.ApplicationPages.StorefrontBase.TryGetAppsFromCorporateCatalog(SPAppSubtype subtype, String category, String sort, String query, Int32 maxApps, Boolean& tooMany) at Microsoft.SharePoint.ApplicationPages.StorefrontBase.GetCorporateMyApps(SPAppSubtype subtype, String sort, String query, Boolean filtered, Boolean promoted, Boolean& tooMany) at Microsoft.SharePoint.ApplicationPages.StorefrontBase.GetMergedMyApps(SPAppSubtype subtype, String sort, String query, Boolean filtered, Boolean promoted, Boolean& tooMany) at Microsoft.SharePoint.ApplicationPages.StorefrontBase.TaskGetMyApps() at Microsoft.SharePoint.ApplicationPages.StorefrontBase.TryRunTask(TryGetOutput taskMethod, String reliabilityName, UInt32 startT... 50ba439e-6b6e-30d4-40a7-5f869814e185 ...ag, UInt32 successTag, UInt32 unexpectedFailureTag) at Microsoft.SharePoint.ApplicationPages.StorefrontBase.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) ... 50ba439e-6b6e-30d4-40a7-5f869814e185 ...at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCo... 50ba439e-6b6e-30d4-40a7-5f869814e185 ...mpletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) 50ba439e-6b6e-30d4-40a7-5f869814e185
It was interesting to see something like that. Possessing that information and noticing that some of the App Catalog fields was being presented like $Resources:Deployed; and not Deployed, I took a guess that the Language Resources were required.
The Solution to make the SPFx apps appear in SharePoint
Basically my action plan was:
- Ensure that the Feature Pack 2 for SharePoint 2016 and its Language dependent fixes are updated and in the same version. This blog post from Stefan Goßner about Feature Pack 2 saved my day;
- Actually I was a little desperate and then I also installed the January CU updates based on another Stefan Goßner post;
- Run again the SharePoint Configuration Wizard and restart the server;
- Then I recreated my App Catalog site collection.
Once I did that I was able to see the column fields normally:
Furthermore, I was able to see my App and install it!
So that’s all guys! Hope it can help you when delivering SPFx solutions while facing those SPFx solutions not showing in Apps in SharePoint On Premises!
Also, if you are a SharePoint developer, you might get interested on optimizing your development environment with this post!
References:
Stefan Goßner’s blog
Microsoft documentation
This really helped me today. Thank you
I’m happy to know that! You’re welcome!