Instalación de varias instancias con transformaciones de instancia
En este tema se dan instrucciones para instalar o reinstalar una instalación de varias instancias que usa transformaciones de instancia.
- Al instalar una nueva instancia con una transformación de instancia, incluya la propiedad MSINEWINSTANCE y establezca MSINEWINSTANCE=1.
- Al instalar una nueva instancia con una transformación de instancia, incluya la propiedad TRANSFORMS y establezca la primera transformación en la lista de transformaciones en la transformación de instancia que cambia el código del producto. Las transformaciones de personalización deben seguir la transformación de instancia al principio de esta lista.
- La manera más fácil de iniciar una instalación de mantenimiento y volver a instalar una instancia es hacer referencia al código de producto de la instancia. Si inicia la instalación de mantenimiento mediante la ruta de acceso del paquete, también debe especificar el código de producto de la instancia. En la línea de comandos, use la opción /n {Product Code}. En el código o script, use la propiedad MSIINSTANCEGUID.
En el ejemplo siguiente se muestra la instalación de una nueva instancia desde una línea de comandos en la que una transformación de instancia tiene como prefijo un signo de dos puntos que especifica que la transformación se inserta en el paquete.
msiexec /I mypackage.msi TRANSFORMS=:instance.mst MSINEWINSTANCE=1 /qb
En el ejemplo siguiente se muestra cómo instalar una nueva instancia mediante MsiInstallProduct.
UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("TRANSFORMS=:instance.mst MSINEWINSTANCE=1"));
En el ejemplo siguiente se muestra la instalación de la nueva instancia desde el script.
Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.InstallProduct "path to mypackage.msi", "TRANSFORMS=:instance.mst MSINEWINSTANCE=1"
En el ejemplo siguiente se vuelve a instalar una instancia sin volver a almacenar el paquete en caché. Su código de producto{00000001-0002-0000-0000-624474736554} hace referencia a la instancia.
msiexec /I {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=omus /qb
En el ejemplo siguiente se vuelve a instalar una instancia y se vuelve a almacenar el paquete en caché desde la línea de comandos. La ruta de acceso del paquete hace referencia a la instancia. Solo es necesario incluir la opción /n {Product Code} si el producto se instala desde el principio con una transformación de instancia.
msiexec /I c:\newpath\mypackage.msi /n {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus /qb
En el ejemplo siguiente se vuelve a instalar una instancia y se almacena el paquete en caché mediante MsiInstallProduct. La ruta de acceso del paquete hace referencia a la instancia. Use la propiedad MSIINSTANCEGUID para proporcionar el código de producto de la instancia.
UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus"));
En el ejemplo siguiente se vuelve a instalar una instancia y se almacena el paquete en caché mediante script. Use la propiedad MSIINSTANCEGUID para proporcionar el código de producto de la instancia.
Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.InstallProduct "path to mypackage.msi", "MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus"
En el ejemplo siguiente se muestra cómo anunciar una instancia mediante la línea de comandos.
msiexec /jm mypackage.msi /t :instance.mst /c /qb
En el ejemplo siguiente se muestra cómo instalar para anunciar una instancia mediante MsiAdvertiseProductEx.
UINT uiStat = MsiAdvertiseProductEx(_T("path to mypackage.msi"), NULL, _T(":instance.mst"), 0, 0, MSIADVERTISEOPTIONS_INSTANCE);
En el ejemplo siguiente se muestra cómo aplicar una revisión a una instancia desde una línea de comandos. Solo es necesario incluir la opción /n {Product Code} si el producto se instaló desde el principio con una transformación de instancia.
msiexec /p mypatch.msp /n {00000001-0002-0000-0000-624474736554} /qb
En el ejemplo siguiente se muestra cómo aplicar una revisión a una instalación de instancia mediante MsiApplyPatch.
UINT uiStat = MsiApplyPatch(_T("path to mypatch.msp"), _T("{00000001-0002-0000-0000-624474736554}"), INSTALLTYPE_SINGLE_INSTANCE, _T("REINSTALL=ALL REINSTALLMODE=omus"));
Para obtener más información, consulte Instalación de varias instancias de productos y revisionesyCreación de varias instancias con transformaciones de instancia.