Leave a single solution, but create separate configurations, one containing old MSTest projects and another containing .NET Standard projects. Lets call those configurations OldMsTest and NetStandard for example.
Create a build build matrix which will run OldMsTest on Visual Studio 2015 and NetStandard on Visual Studio 2017. Simplest way to achieve this is used environment variables-based matrix, e.g.
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
Then you need to make Visual Studio 2015/OldMsTestjob to wait for the Visual Studio 2017/NetStandard one. We do not have 1st class support for dependencies between jobs, but you can use this script sample. just in this case you need to make 2nd job to wait, not 1st one.
I assume that Visual Studio 2017/NetStandard will package nuget artifacts and Visual Studio 2015/OldMsTest will get them from AppVeyor nuget feed. Note that AppVeyor push nuget packages to the feed asynchronously, so when Visual Studio 2017/NetStandard job finished, nuget packages can be still in the process of publishing. So there is a very small chance of race condition exist. If you hit it, you can simple add retry to nuget restore, e.g. appveyor-retry nuget restorein the configuration specific to Visual Studio 2015/OldMsTest.
To specialize build scenario for build jobs in matrix check this.