wix bootstrapper wixstdba

No se pudo compilar WixStdBootstrapperApplication-no se encontrĂ³ el error "C: / tools / WixBuild.props"



wixstdba (1)

Estoy tratando de hacer cambios en la WixStandardBootstrapperApplication.cpp y generar una dll según la sugerencia de este enlace. He descargado la fuente wix310-debug y estoy modificando el archivo presente en wix310-debug / src / ext / BalExtension / wixstdba / location. Hay un archivo wixstdba.vcxproj en esta ubicación que intento abrir con Visual Studio 2012. Cada vez que trato de hacerlo obtengo el error:

Unable to read the project file "wixstdba.vcxproj". The imported project "C:/tools/WixBuild.props" was not found.

No estoy seguro de qué hacer para corregir esto. Además, en función del enlace al que se hace referencia, creo que estoy actualizando el archivo correcto, pero avíseme si ese no es el caso. Cualquier ayuda en esto sería genial. Gracias por adelantado.


En tu vcxproj hay una línea como esta:

<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))/tools/WixBuild.targets" />

La fuente de depuración no es realmente la fuente de wix. Incluye todos los archivos fuente de wix, pero no es realmente compilable. Este zip tiene todos los pdbs creados y solo se usa para depurar.

Desea descargar la fuente de wix del github de wixtoolset para que pueda compilar wixstdba. Pero, esto es para la versión 3.10.3 actualmente y puede tener algunos cambios específicos de la versión, pero no veo nada que sea un problema usando el archivo DLL creado aquí contra wix 3.10.2 ya que las interfaces de la aplicación del motor y del programa de arranque deberían haber permanecido como mismo.

Pero , deberías poder construir todo esto solo con el proyecto WixStdBA. Deberás copiar sobre la carpeta wixstdba. Edite vcxproj y elimine la línea de importación mencionada anteriormente (debe estar cerca de la parte inferior).

Ahora, agregue este proyecto a su nueva solución o su solución de instalador en Visual Studio. Necesitamos agregar directorios adicionales de inclusión y biblioteca. Todos estos incluyen directorios estarán en su ubicación de instalación wix (predeterminado C: / Archivos de programa (x86) / WiX Toolset v3.10) En Propiedades -> C / C ++ -> General -> directorios de inclusión adicionales agregue su ruta de acceso wix SDK. Si está utilizando Visual Studio 2013, puede usar la ruta completa o puede usar "$ (WIX) / SDK / vs2013 / inc". $ (WIX) debe hacer referencia a la variable de entorno WIX que apunta al directorio de instalación que se agrega al instalar wix. Esta debería ser la mejor opción si va a construir en un sistema de compilación con wix instalado ya que la ubicación puede ser diferente en todas las máquinas.

Ahora para los directorios adicionales de la biblioteca, vamos a Propiedades -> Enlazador -> General -> Director de Biblioteca Adicional y agregamos la ruta de acceso de la lib correcta. Si está utilizando Visual Studio 2013, quiere poner $ (WIX) / SDK / vs2013 / lib / x86. Finalmente, necesitamos hacer referencia a las librerías que se necesitan para construir el dll bootstrapper. En Linker -> Input -> Additional Dependencies, agregue "dutil.lib; balutil.lib". Mis dependencias adicionales tienen muchas más cosas y no recuerdo si estaban allí por defecto. Aquí están mis dependencias adicionales de todos modos

dutil.lib;balutil.lib;advapi32.lib;comctl32.lib;comdlg32.lib;gdi32.lib;gdiplus.lib;kernel32.lib;msimg32.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;shlwapi.lib;user32.lib;uuid.lib;wininet.lib;winspool.lib;version.lib;%(AdditionalDependencies)

Con esto, deberías poder construir el proyecto wixstdba y construir un dll. Sin editar ningún código, este debería ser exactamente el mismo que el wix incluido wixstdba.dll.

Podría intentar hacer referencia a este dll en lugar de wix incluido (tiene que definir su propia aplicación Bootstrapper en lugar de usar BootstrapperApplicationRef a uno de los wix) o simplemente colocar este dll en el contenedor de la ubicación wix.