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