Automapper is a way to match types, ideally when you want to map a model and its viewmodel. But is this not the same approach that we can make with implicit in C#? (
Automapper basically allows you:
But it is obviously slower than handwritten code. So in case you are not concern about performance very much - you should give it a try, it may be worthful. Otherwise you can try something faster (for ex. emitmapper) or write you own mappers by hand and combine to convert complex types.
My experience shows that viewmodels more often are very different from models (DTO's) coz they are created for different tasks, to solve different problems. So automatic mapping would be difficult in such scenarios, оr not advantageous (become unreadable clutter, conglomeration)