viernes, 9 de octubre de 2015

MSBuild Error MSB4062: The "InstallShield.Tasks.InstallShield" task could not be loaded from the assembly

Utilizando MSBuild para compilar los proyectos en Jenkins me encontré con el siguiente error:
MSBuild Error MSB4062: The "InstallShield.Tasks.InstallShield" task could not be loaded from the assembly . 
Luego de luchar, como siempre, encontré la solución...


Por lo que encontré, este error se produce al querer tomar las DLL de Install Shield (32 bits) como si fueran de 64 bits.

El mensaje de error completo fue:

C:\Program Files (x86)\MSBuild\InstallShield\2015Limited\InstallShield.targets(108,3): error MSB4062: The "InstallShield.Tasks.InstallShield" task could not be loaded from the assembly C:\Program Files (x86)\MSBuild\InstallShield\2015Limited\InstallShield.Tasks.dll. Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\InstallShield\2015Limited\InstallShield.Tasks.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. [C:\Jenkins\.jenkins\jobs\Gilbarco - Probando SETUP\workspace\InterfazGilbarco.Setup\InterfazGilbarco.Setup.isproj]

    9 Warning(s)
    1 Error(s)

Basándome en cosas de internet lo primero que hice fue, desde el Visual Studio, para las configuraciones default de Install Shield (DVD-5, SingleImage, etc) poner como plataforma de salida X86. Luego, a la hora de compilar el proyecto, en Jenkins configuré los siguientes parámetros:
/p:Configuration=SingleImage /p:VisualStudioVersion=12.0
Esto no dio resultado, entonces probando encontré el problema. Este era que usaba el siguiente path de MSBuild:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
El problema del Path ese, es que MSBuild es de 64 bits, y necesitaba de 32. Entonces, modifiqué el path a:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
Y se solucionó el problema!

Ahora el proyecto compila.

Saludos!

1 comentario: