Page 1 sur 1

[RESOLU] Paquet Solidworks 2024

Posté : 03 juin 2024 - 09:39
par gaelds
Bonjour,
J'ai un problème étrange sur mon paquet Solidworks 2024. Il s'installe correctement, se désinstalle aussi. Mais si j'essaye de le réinstaller sur le même PC, il fait seulement "semblant" de s'installer. La fonction install() du paquet ne renvoie pas d'erreur (l'audit est désactivé), mais rien ne réinstalle. Si je lance l'install manuelle de la même version de Solidworks, il se remet bien sur le poste.

Voici le setup.py:

Code : Tout sélectionner

# -*- 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")
A la seconde installation (après désinstallation), il indique bien "Installing: SW2024\startswinstall.exe (32.2.0.115)", pas que cette version du logiciel est déjà présente. La désinstallation du paquet ne laisse pas de traces dans le "Programmes et fonctionnalités" de windows.

EDIT: Je pense que le souci vient de l'absence du fichier "SW2024\64bit\sldim\admin.dat" que j'ai supprimé du paquet car il provoquait une erreur SHA not matching (détection antivirus ?). Il faudrait que le recrée dans le dossier SW2024 juste avant l'installation.

Re: Paquet Solidworks 2024

Posté : 03 juin 2024 - 11:50
par gaelds
Le paquet fonctionne en créant le fichier SW2024/64bit/sldim/admin.dat à la volée juste avant l'installation :

Code : Tout sélectionner

# -*- 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)

Re: Paquet Solidworks 2024

Posté : 13 juin 2024 - 11:31
par dcardon
Bonjour Gaël,

merci pour le retour :-) Je passe le topic en resolu. On va voir pour rajouter un paquet solidworks sur le store.

Denis