c++ visual-studio msbuild appveyor

c++ - ¿No se pueden realizar pruebas de 64 bits con AppVeyor?



visual-studio msbuild (1)

Nuestro archivo de solución de Visual Studio incluye Win32, x64 en ambas configuraciones de Debug, Release. AppVeyor está fallando en todas las compilaciones de 64 bits.

El archivo de configuración de AppVeyor se encuentra a continuación. El archivo es mínimo y debería ser fácil de analizar.

Hay dos archivos de proyecto en juego. Uno es cryptlib.vcxproj y construye una biblioteca. El otro es cryptest.vcxproj y ejercita la biblioteca. Los archivos son horribles pero funcionan:

Nuestra fase de compilación de AppVeyor solo crea el proyecto con MSbuild. Abajo está mi clon de prueba en Noloader | GitHub

test_script: - cmd: >- msbuild /t:Build cryptlib.vcxproj msbuild /t:Build cryptest.vcxproj msbuild /t:CopyCryptestToRoot cryptest.vcxproj cryptest.exe v cryptest.exe tv all

Nuestra compilación de 64 bits falla en AppVeyor. Probamos tanto x64 como Win64 . Los resultados están disponibles en mi clon de prueba en Noloader | AppVeyor . Debajo está la cola de una construcción fallida.

... validat0.cpp validat1.cpp validat2.cpp validat3.cpp Generating Code... LINK : fatal error LNK1104: cannot open file ''Ws2_32.lib'' [C:/projects/cryptopp/cryptest.vcxproj]

Las cosas funcionan bien a nivel local con MSBuild. La búsqueda del problema encuentra algunos éxitos. El mejor golpe es esta pregunta.

Creemos que esto podría estar relacionado: ¿Cómo ejecutar VCUpgrade antes de la compilación de Appveyor? Lo que no entendemos es que MSBuild falla inmediatamente cuando necesita una actualización. Como no está fallando, no sabemos qué está sucediendo.

¿Cuál es el problema y cómo lo solucionamos?


Appveyor parece usar x86 / x64 como nombres de plataforma (y, supongo, traduce "x86" en "Win32" para las imágenes de compilación VS) así que me quedaría con eso y luego pasaría la plataforma / configuración explícitamente. Nunca he tenido problemas con eso, y he bifurcado cryptopp y verificado que también está bien allí.

configuration: - Debug - Release platform: - x86 - x64 build_script: - cmd: >- msbuild cryptlib.vcxproj /p:platform=%platform%;configuration=%configuration% msbuild cryptest.vcxproj /p:platform=%platform%;configuration=%configuration%