ОБНОВЛЕНИЕ: образец матрицы

блиотека C ++. Мы боремся с AppVeyor и Visual Studio сборками с сборками x64. Образы сборки Visual Studio для Win32 испытывают ту же проблему, но по какой-то [неизвестной] причине они завершаются успешно.

Мы пытаемся использовать образ сборки Visual Studio 2015 (среди прочего):

Когда мы проверяем командную строку, оказывается, что мы используем компилятор Visual Studio 2010 (Visual Studio 10.0 является VS2010):

Наш конфигурационный файл AppVeyor находится по адресуNoloader GitHub | .appveyor.yml, Это также показано ниже.

Все проходит через.appveyor.yml, Там нет скрытых настроек, которые влияют на вещи (или мы не верим в это). Мы хотим все в.appveyor.yml так что люди могут клонировать это, и вещи «просто работают» для них.

Файлы проекта находятся в GitHub по адресуcryptest.vcxproj а такжеcryptlib.vcxproj, Файлы * .vcxproj используют жестко$(DefaultPlatformToolset) какпредложено @stinj, (РЕДАКТИРОВАТЬ: DefaultPlatformToolset - уже нет. Мы полностью убралиDefaultPlatformToolset а такжеPlatformToolset).

Результаты сборки проекта находятся по адресуNoloader AppVeyor | cryptopp, Это источник снимков экрана.

Почему используются неправильные инструменты сборки и как мы можем это исправить?

Когда я избегаю$(DefaultPlatformToolset) и жестко закодировать значение набора инструментов платформы, это вызывает еще одну ошибку. Например, ниже приведен образ сборки Visual Studio 2015. Он умирает, когда версия набора инструментов установлена ​​наv140, который является значением версии VS2015. Это сбивает с толку.

(Совершить ac513c06f8c8 в конечном итоге был возвращен, потому что он сломал вещи хуже, чем раньше).

Когда мы полностью удалим все следыPlatformToolset а такжеDefaultPlatformToolset в наших файлах VCXPROJ это приводит к той же ошибке. Ниже приведен образ сборки 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

Ответы на вопрос(0)

Ваш ответ на вопрос