installer - office - eliminar programas que no aparecen
Ocultar el desinstalador en Agregar/Quitar programas? (4)
No sabes quiénes son sus "usuarios". Esto puede no ser para el software del usuario final en absoluto. Escribimos una gran cantidad de software personalizado que está instalado en un NOC; no agrega ni desinstala ninguna información de desinstalación. (Estamos usando el NSIS de Nullsoft y no el instalador de Visual Studio, por cierto ...)
Estoy creando un proyecto de instalación de Windows usando Visual Studio 2005.
¿Hay alguna opción para que mi proyecto NO tenga una opción de desinstalación en Agregar o quitar programas?
Uno de mis clientes me ha pedido que haga esto. He aquí el porqué : porque el instalador es un parche para un programa existente. Después de la desinstalación, el programa ya no funciona porque los archivos parcheados se desinstalan. En lugar de encontrar una manera de restaurar los archivos reemplazados (que no hemos podido hacer con este instalador), nos preguntamos si es posible deshabilitar la desinstalación.
Puede haber, pero para ser honesto, esa es una idea horrible y horrible. No es su decisión decirle a un usuario qué puede y qué no puede hacer con su máquina.
Y si el usuario no debería tener la capacidad de hacerlo, entonces eso generalmente lo determina un administrador y el usuario no tiene derecho a desinstalar nada en virtud de su tipo de cuenta, lo que tampoco es algo sobre lo que deba influir. en.
Solo necesita establecer ARPSYSTEMCOMPONENT = 1 en la tabla de propiedades del instalador usando Orca (no se puede hacer directamente en Visual Studio por lo que sé)
Esto se usa comúnmente cuando un programa instala dependencias y no desea que el usuario desinstale las dependencias manualmente, necesitan usar un script de desinstalación específico que haya proporcionado o algo así.
Personalmente, autorizaría el parche como un parche y evitaría que se desinstalara el parche.
También sugiero que recoja una copia de La guía definitiva de Windows Installer, que le dará una explicación sobre cómo, por qué y dónde debe usar trucos como este. Además de proporcionarle una comprensión muy buena de los fundamentos del instalador de Windows y de ayudarlo a diseñar un mejor instalador a largo plazo. Todos los ejemplos en el libro usan herramientas gratuitas de Visual Studio + del SDK de Windows Installer.
Editar: El usuario todavía tiene control total para desinstalar a través de MSIEXEC, a través de un acceso directo de desinstalación personalizado que usted proporciona, todo lo que hace es ocultar la entrada en Agregar / Quitar Programas (ARP)
Edit2: Muestra VBS para agregar la propiedad (si quieres hacerlo como parte de un proceso de compilación automatizado)
Dim installer, database, view
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase ("test.msi", 1)
Set view = database.OpenView ("INSERT INTO Property(Property.Property, Property.Value) VALUES(''ARPSYSTEMCOMPONENT'', ''1'')")
view.Execute
Set database = Nothing
Set installer = Nothing
Es demasiado tonto decir algo como "Esto siempre es una idea horrible". Hay muchos casos en el software moderno en los que la desinstalación de dependencias puede ser verdadera y completa: la máquina en cuestión.
Los ideales del software de código abierto solo son útiles para las personas que DESEAN poder romper su máquina.