[RESUELTO] Paquete Solidworks 2024

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
Gaelds
Mensajes: 254
Inscripción: 22 de noviembre de 2015 - 08:37

3 de junio de 2024 - 09:39

Buen día,
Tengo un problema extraño con mi paquete de Solidworks 2024. Se instala y desinstala correctamente. Pero si intento reinstalarlo en el mismo equipo, solo finge instalarse. La función install() del paquete no devuelve ningún error (la auditoría está deshabilitada), pero no se reinstala nada. Si instalo manualmente la misma versión de Solidworks, se instala correctamente en el equipo.

Aquí está el archivo setup.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
app_name = 'SOLIDWORKS 2024'
app_dir = makepath(programfiles, 'SOLIDWORKS Corp')
app_dir_binaries = makepath(app_dir,'SOLIDWORKS')
binary_name = "SLDWORKS.exe"
kill_list = [binary_name]

def install():
    print('Installation de : %s' % control.name)
    install_exe_if_needed(r'SW2024\startswinstall.exe',silentflags='/install /now',timeout=1800)

def uninstall():
    # Remove software and all dependances installed by my custom Administrative SolidWorks Image. You should probably adapt this function to your Administrative Image.
    print('Uninstalling CEF for SOLIDWORKS Applications')
    run_notfatal(r'MsiExec.exe /X{A3731044-38ED-44A1-AA43-0819B422AADB} /passive /norestart') 
    print('Uninstalling SOLIDWORKS 2024 French Resources')
    run_notfatal(r'MsiExec.exe /X{12E5ACE4-6D44-444C-BCA4-679A861D0711} /passive /norestart') 
    print('Uninstalling SOLIDWORKS eDrawings 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{3835B6E2-CC35-4F45-900A-5AE9772B8B24} /passive /norestart') 
    print('Uninstalling SOLIDWORKS Flow Simulation 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{5D202678-5697-45BE-B4DF-3208EBFE8415} /passive /norestart') 
    print(r'Desinstallation de SOLIDWORKS 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{E9661DF2-E1B0-423F-BFFA-1A6EF0B1307B} /passive /norestart') 
    print(r'Uninstalling SolidWorks Installation Manager 20240-40200-1100-100')
    run_notfatal(r'"C:\WINDOWS\SolidWorks\IM_20240-40200-1100-100\sldim\sldim.exe" /remove "C:\WINDOWS\SolidWorks\IM_20240-40200-1100-100\sldim\sldIM_installed.xml"') 
    if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SolidWorks Installation Manager 20240-40200-1100-100'):
        registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall',r'SolidWorks Installation Manager 20240-40200-1100-100')
        remove_tree(r'C:\Windows\Solidworks')
    print(r'Remove extra folders and data')
    remove_tree(r'C:\Program Files\SOLIDWORKS Corp')
    remove_tree(r'C:\SOLIDWORKS Data')
    remove_tree(r'C:\ProgramData\SOLIDWORKS')
    remove_tree(r'C:\Windows\Solidworks')

def audit():
    return("OK")
En la segunda instalación (tras la desinstalación), se muestra correctamente "Instalando: SW2024\startswinstall.exe (32.2.0.115)", lo que no indica que esta versión del software ya esté instalada. La desinstalación del paquete no deja rastro en "Programas y características" de Windows.

EDITAR: Creo que el problema se debe a la falta del archivo "SW2024\64bit\sldim\admin.dat", que eliminé del paquete porque causaba un error de SHA no coincidente (¿detección de antivirus?). Debería volver a crearse en la carpeta SW2024 justo antes de la instalación.
Gaelds
Mensajes: 254
Inscripción: 22 de noviembre de 2015 - 08:37

3 de junio de 2024 - 11:50

El paquete funciona creando el archivo SW2024/64bit/sldim/admin.dat sobre la marcha justo antes de la instalación:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
app_name = 'SOLIDWORKS 2024'
app_dir = makepath(programfiles, 'SOLIDWORKS Corp')
app_dir_binaries = makepath(app_dir,'SOLIDWORKS')
binary_name = "SLDWORKS.exe"
kill_list = [binary_name]

def create_admin_dat_file():
    # Définir le contenu du fichier
    file_content = """// SolidWorks Installation Manager Admin Image Marker File - DO NOT DELETE OR MODIFY!
Release = 20240-40200-1100-100
Status = 2
<End>"""
    
    # Définir le chemin du fichier
    directory = "./SW2024/64bit/sldim"
    file_path = os.path.join(directory, "admin.dat")
    # Créer le dossier si nécessaire
    os.makedirs(directory, exist_ok=True)
    # Écrire le contenu dans le fichier
    with open(file_path, "w") as file:
        file.write(file_content)
    print(f"Fichier créé : {file_path}")

def install():
    # Création du fichier admin.dat
    create_admin_dat_file()
    print('Installation de : %s' % control.name)
    install_exe_if_needed(r'SW2024\startswinstall.exe',silentflags='/install /now',timeout=1800)

def uninstall():
    # Remove software and all dependances installed by my custom Administrative SolidWorks Image. You should probably adapt this function to your Administrative Image.
    print('Uninstalling CEF for SOLIDWORKS Applications')
    run_notfatal(r'MsiExec.exe /X{A3731044-38ED-44A1-AA43-0819B422AADB} /passive /norestart') 
    print('Uninstalling SOLIDWORKS 2024 French Resources')
    run_notfatal(r'MsiExec.exe /X{12E5ACE4-6D44-444C-BCA4-679A861D0711} /passive /norestart') 
    print('Uninstalling SOLIDWORKS eDrawings 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{3835B6E2-CC35-4F45-900A-5AE9772B8B24} /passive /norestart') 
    print('Uninstalling SOLIDWORKS Flow Simulation 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{5D202678-5697-45BE-B4DF-3208EBFE8415} /passive /norestart') 
    print(r'Desinstallation de SOLIDWORKS 2024 SP02.1')
    run_notfatal(r'MsiExec.exe /X{E9661DF2-E1B0-423F-BFFA-1A6EF0B1307B} /passive /norestart') 
    print(r'Uninstalling SolidWorks Installation Manager 20240-40200-1100-100')
    run_notfatal(r'"C:\WINDOWS\SolidWorks\IM_20240-40200-1100-100\sldim\sldim.exe" /remove "C:\WINDOWS\SolidWorks\IM_20240-40200-1100-100\sldim\sldIM_installed.xml"') 
    if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SolidWorks Installation Manager 20240-40200-1100-100'):
        registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall',r'SolidWorks Installation Manager 20240-40200-1100-100')
        remove_tree(r'C:\Windows\Solidworks')

    print(r'Remove extra folders and data')
    remove_tree(r'C:\Program Files\SOLIDWORKS Corp')
    remove_tree(r'C:\SOLIDWORKS Data')
    remove_tree(r'C:\ProgramData\SOLIDWORKS')
    remove_tree(r'C:\Windows\Solidworks')

def audit():
    if isfile(makepath(app_dir_binaries,binary_name)):
        return("OK")
    else:
        return("Erreur : %s est introuvable !" %binary_name)
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

13 de junio de 2024 - 11:31

Hola Gaël,

gracias por tus comentarios. :-) Marco este tema como resuelto. Estudiaremos la posibilidad de añadir un paquete de SolidWorks a la tienda.

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Bloqueado