You should be able to get the stuff the upholstery shops use from automotive supply houses, if it is anything special. Have you tried 3M 77, or any of the other stuff available in spray cans at the local hardware stores? I'd think the regular LePage contact Cement would work as well. It is very tenacious stuff when used correctly. I'd also agree with FE that mechanical fasteners at the edge is good where possible, in addition to the glue.
I and many others have had 3M-77 fail after 1-2 years, even with proper double-face application. As blkfrd mentioned, Pliobond 20 (some use Pliobond 30) is the most common alternative. A pint will do, and it's rather expensive. However, it's good when your roof is 240+ degrees in the summer sunshine. Local roofing contractors and construction outfits often have 5-gallon buckets of it, and may put some in your small container for a few bucks or beer.
I had my ABS(?) dash cap covered with Mellowhide 5 years ago and held up fine including some hot days in the Texas sun. No staples could be used so nothing but glue. There was some compound stretching required, too. Unfortunately I do not know what kind of cement or technique.
I think the kind of vinyl matters. I have had bad luck glueing "stretchy" vinyl, myself. That stuff won't stick to anything!
One thing that might have worked out for my dash: the upholsterer sandwiched a thin piece of foam between the two surfaces. Might be that foam has great sticking qualities and that was what did the trick so well.