Estoy tratando de usar MSBuild (en CruiseControl) para compilar la instalación de mi aplicación .NET 4. La compilación de instalación debe crear un boostrapper para instalar el prerrequisito (.NET 4 y Windows Installer 4.5 en este caso), esto se hace usando el GenerateBootstrapper Task.MSBuild: error MSB3147: No se pudo encontrar el archivo requerido 'setup.bin'
Corriendo MSBuild.exe project.msbuild.xml
desde la línea de comando en una máquina de desarrollo, que tiene VS 2010 instalado, funciona bien. Que se ejecuta en la máquina de construcción, que sólo cuenta con la última 7 SDK de Windows, se produce el error:
(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147:
Could not find required file 'setup.bin' in '<project path>\ProductDistributions\Engine'.
En las máquinas dev, tengo una carpeta C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine
que contiene un archivo setup.bin
, sino en la máquina de construcción no hay Bootstrapper
carpeta dentro de C:\Program Files\Microsoft SDKs\Windows\v7.1
(el 7.1 vs 7.0A es aparentemente porque VS2010 instala 7.0A, pero el SDK independiente es 7.1).
Además, en la máquina de construcción no hay ninguna clave 4.0 Registro en el interior HKLM\Software\Microsoft\GenericBootstrapper\
, pero las máquinas dev ¿Tiene uno que contiene una cadena de ruta con un valor de c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\
Parece que hay algo que necesito para instalar en el construir máquina para agregar la carpeta Bootstrapper a "Microsoft SDKs \ Windows \ v7.1" (y configurar las claves de registro), pero no estoy seguro de qué es eso. ¿Alguna idea de lo que necesito obtener?
¿O hay algo más que necesito para que funcione mi instalación?
Actualizado: esto he trabajando en el momento copiando manualmente la carpeta de programa previo 7.0a de una máquina del revelador en la máquina de construcción, y añadiendo manualmente ese camino a la tecla HKLM\Software\Microsoft\GenericBootstrapper\4.0
registro. Lo cual parece funcionar, pero parece que esto no puede ser lo que se supone que debo hacer para solucionar el problema. Así que apreciaría si alguien tiene una solución menos hacky para esto.
El cambio anterior de copiar el arranque de 7.0A y agregar manualmente la clave de registro solucionó el problema que tenía. Todavía estoy buscando una solución menos hacky, – IndigoDelta
¿Por casualidad instalaste el .Net 4.5 beta en esa máquina? Tuve algunos problemas similares en mi estación de trabajo hasta que desinstalé por completo 4.5 (todo lo que hace referencia a 4.5 y VS11 en programas de agregar/quitar) y reinstalé 4.0 desde MSDN. –
No, esta pregunta fue de enero de 2011, por lo que antes de 4.5 beta estaba disponible. – Wilka