visual-studio-2012 - studio - installshield visual
Visual Studio-InstalaciĆ³n de InstallShield en un proyecto con System.Data.SQLite (2)
Tengo una biblioteca de clase C # que hace referencia a System.Data.SQLite (de nuget) . Esta es la estructura de mi carpeta bin después de la compilación:
- MyProject.dll
- System.Data.SQLite.dll
- x86 / SQLite.Interop.dll
- x64 / SQLite.Interop.dll
System.Data.SQLite
necesita el SQLite.Interop
para ejecutarse y el dll correcto se encuentra en tiempo de ejecución. Sin embargo, cuando genero una instalación con InstallShield que incluye la salida primaria del proyecto, las carpetas x86 y x64 no se copian y mi aplicación no se ejecuta.
¿Hay alguna forma de forzar a Visual Studio a incluir carpetas x86 y x64 en la salida primaria?
¿Hay alguna manera de incluir las carpetas manualmente en InstallShield con una ruta relativa ?
Mi entorno:
- Profesional de Visual Studio 2012
- Instalar Shield 2013 edición limitada (gratis)
- System.Data.SQLite 1.0.96
Me encontré con el mismo problema usando VS2013 / Installshield LE; Terminé optando por cambiar el paquete NuGet en mi máquina para NO crear la carpeta x86 para SQLite.interop.dll en la carpeta de compilación.
Para hacerlo, busque en la carpeta "packages / System.Data.SQLite.Core.1.0.104.0 / build" debajo del directorio de su proyecto. A continuación, elija la subcarpeta pertinente a la versión de .NET a la que se dirige, y abra el archivo "System.Data.SQLite.Core.targets" en un editor de texto. Deseará eliminar todas las referencias a " %(RecursiveDir)
" EXCEPTO en la sección " SQLite Interop Library Content Items
". Guardar, limpiar y reconstruir: el dll de interoperabilidad ahora debería estar en la misma carpeta que el ejecutable principal / etc, e Installshield debería poder incluirlo automáticamente como una dependencia.
Si no se muestra en el lugar correcto, intente editar un archivo .target de una versión de .NET diferente hasta que llegue a la correcta.
Sí, hay una forma de agregar / desplegar carpetas a través de InstallShield. En las pestañas Archivos, puede agregar los archivos / carpeta. Al agregar estos archivos, puede establecer la ruta relativa también en esto. Simplemente establezca una propiedad con la ruta y use esa propiedad en su ruta relativa. Entonces, ¿dónde quiere copiar estos archivos (ubicaciones de referencia para DLL), puede agregar esa estructura de carpetas a través de InstallShield y puede agregar archivos en eso.