I created a webpart and workflow farm solution in visual studio in SharePoint 2013 for my company's intranet many years ago. A while back, my company upgraded to SharePoint 2016. I'm trying to migrate the 2013 farm solution to SharePoint 2016. I opened SharePoint 2013 project file in Visual Studio 2019 and migrated it to 2016 and then tried installing it on the SharePoint 2016 farm.
All looks good; however, when trying to get to the workflow association form, I get a correlation ID Error which complains about not finding the form in the virtual path. I manually checked and the files are located C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\_LAYOUTS\myProject\myWorkflow\coder\WorkflowAssociationForm1.aspx.
Any ideas how I can get my new SharePoint 2016 farm to find the form files in the /_LAYOUTS/ directory?
Open SharePoint 2013 project in Visual Studio 2019
Solutions will state it needs to be migration
Click Reload Project with Dependencies for the Workflow and WebPart
Click ok to the One-Way Upgrade
Once done, Build the solution, all builds with no errors
Publish a new .wsp file
Upload the .wsp to the server
Deploy it via Install-SPSolution -Identity mySolution.wsp -GACDeployment -WebApplication WebAppUrl
All installs and deploys fine without errors
Open work flow association form and get correlation error
Application error when access /_LAYOUTS/myProject/myWorkflow/coder/WorkflowAssociationForm1.aspx, Error=The file '/_LAYOUTS/myProject/myWorkflow/coder/WorkflowAssociationForm1.aspx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)