Por que o AppVeyor usa as ferramentas do VS2010 para a imagem do VS2015?

Somos uma biblioteca C ++. Estamos lutando com o AppVeyor e o Visual Studio para criar imagens com x64. As imagens de compilação do Visual Studio para Win32 sofrem o mesmo problema, mas por algum motivo [desconhecido], elas são concluídas com êxito.

Estamos tentando usar a imagem de compilação do Visual Studio 2015 (entre outros):

Quando inspecionamos a linha de comando, parece que estamos usando o compilador do Visual Studio 2010 (O Visual Studio 10.0 é VS2010):

Nosso arquivo de configuração do AppVeyor está localizado emNoloader GitHub | .appveyor.yml. Também é mostrado abaixo.

Tudo é conduzido através.appveyor.yml. Não há configurações ocultas que estejam afetando as coisas (ou não acreditamos). Queremos tudo em.appveyor.yml para que as pessoas possam cloná-lo e as coisas "simplesmente funcionem" para eles.

Os arquivos do projeto estão localizados no GitHub emcryptest.vcxproj ecryptlib.vcxproj. Os arquivos * .vcxproj usam um código embutido$(DefaultPlatformToolset) Comosugerido por @stinj. (EDITAR: DefaultPlatformToolset - não mais. Removemos completamenteDefaultPlatformToolset ePlatformToolset)

Os resultados da compilação do projeto estão localizados emNoloader AppVeyor | cryptopp. É a fonte da captura de tela.

Por que as ferramentas de compilação incorretas estão sendo usadas e como as corrigimos?

Quando eu evito$(DefaultPlatformToolset) e codificar o valor do conjunto de ferramentas da plataforma, causa mais um erro. Por exemplo, abaixo é para a imagem de compilação do Visual Studio 2015. Ele morre quando a versão do conjunto de ferramentas é definida comov140, que é o valor da versão do VS2015. É confuso.

(Confirmar ac513c06f8c8 acabou sendo revertido porque quebrou as coisas piores do que antes).

Quando removemos completamente todos os vestígios dePlatformToolset eDefaultPlatformToolset em nossos arquivos VCXPROJ, resulta no mesmo erro. Abaixo está uma imagem de compilação do Visual Studio 2017.

version: 1.0.{build}
clone_depth: 3

configuration:

- Debug
- Release

platform:

- Win32
- x64

image:

- Visual Studio 2017
- Visual Studio 2015
- Visual Studio 2013

build: off   

test_script:

- cmd: >-   

    msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptlib.vcxproj

    msbuild /t:Build /p:platform=%platform%;configuration=%configuration% cryptest.vcxproj

    msbuild /t:CopyCryptestToRoot cryptest.vcxproj

    cryptest.exe v

    cryptest.exe tv all

matrix:

  exclude:
#    - platform: x64
#      configuration: Debug
#    - platform: x64
#      configuration: Release
    - image: Visual Studio 2010
    - image: Visual Studio 2017

notifications:
    - provider: Email
      to:
        - [email protected]
      on_build_success: true
      on_build_failure: true

questionAnswers(1)

yourAnswerToTheQuestion