2010-06-28 15 views
11

Tengo un proyecto de instalación de Visual Studio y quiero que el instalador cree una carpeta específica solo si se marca una casilla de verificación en un formulario 'Casillas de verificación (A)' que he agregado a la interfaz de usuario del proyecto. El nombre de la propiedad para la casilla de verificación es CHECKBOXA1 pero no tengo idea de qué poner en la propiedad Condition de la carpeta para que solo se cree si la casilla de verificación está marcada.¿Cómo especifico las condiciones del instalador de Visual Studio?

Respuesta

17

En la propiedad 'condición' para su carpeta, coloque el siguiente:

CHECKBOXA1 = 1

Esto se asegurará de que la carpeta sólo se instala si CHECKBOXA1 ha sido comprobado.

EDITAR: Bien, he descubierto cómo hacerlo, pero está un poco estropeado. Otra de esas rarezas extrañas sobre el instalador de Visual Studio.

Supongamos que la carpeta que deseamos instalar si CHECKBOXA1 está marcada se llama 'Carpeta1', y pondremos un archivo de muestra en la Carpeta1 llamada test.txt.

Primero, necesitamos crear una carpeta contenedora que nunca aparecerá durante la instalación, pero la necesitamos para que el resto funcione. Entonces, en la ventana de su sistema de archivos, cree una carpeta (llamé al mío 'Contenedor'). La propiedad Condition debe establecerse en CHEKCBOXA1 = 1 como hemos mencionado, y la propiedad DefaultLocation se puede establecer en el lugar que desee, por ejemplo [ProgramFilesFolder] \ MyApplication.
Ahora aquí está la parte importante. Asegúrese de que la propiedad DefaultLocation para la carpeta 'Container' NO esté configurada en [ProgramFilesFolder] \ MyApplication \ Container, ya que SIEMPRE creará una carpeta 'Container', independientemente de la propiedad Condition. OK, eso se ocupa de la carpeta del contenedor. Si esto se hace correctamente, cuando instale su aplicación, nunca verá la carpeta Contenedor.

Ahora, dentro de la carpeta Contenedor en la ventana Sistema de archivos, cree la carpeta real que desea, Carpeta1 en este ejemplo. Establezca su propiedad Condition en CHECKBOXA1 = 1, y también asegúrese de que cualquier contenido en él tenga su propiedad Condition también establecida en CHECKBOXA1 = 1.

Ahora cuando ejecuta su instalación, la Carpeta1 solo aparecerá si CHECKBOXA1 está marcado.

No entiendo por qué se necesita la carpeta Contenedor para que funcione correctamente, pero funciona, así que la uso.

+0

Lo intenté. No funciona para mí, siempre se crea la carpeta. – SpaceghostAli

+0

¡¡¡Esto funciona !!! – SpaceghostAli

Cuestiones relacionadas