Routeprovider.cs: Add this mapping
routes.MapRoute("Plugin.Misc.Licenses.GetProductKey",
"Plugins/ProductKey/GetProductKey",
new { controller = "ProductKey", action = "GetProductKey" },
new[] { "Nop.Plugin.Misc.Licenses.Controllers" }
);
ProductKeyConsumer.cs: Change one line in HandleEvent(...) to match:
string url = "../../../Plugins/ProductKey/GetProductKey?productId=" + productId;
EditProductKey.cshtl: Add a 'using' at line 2
@using Nop.Web.Framework;
Maybe I'll find some other issues later.
DNF: Uninstall and install the plugin in the nop admin!