tis-dotnet8 icon

.NET Runtime 8

Paquet d’installation silencieuse pour .NET Runtime 8

8.0.23-15
Dependency
Dependency

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-dotnet8
  • name: .NET Runtime 8
  • version: 8.0.23-15
  • categories: Dependency
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Microsoft
  • licence: opensource_free,cpe:/a:mit:x11_license,wapt_public
  • locale: all
  • target_os: windows
  • architecture: arm64
  • signature_date:
  • size: 165.17 Mo
  • installed_size: 193.11 Mo
  • homepage : https://github.com/dotnet/runtime

package           : tis-dotnet8
version           : 8.0.23-15
architecture      : arm64
section           : base
priority          : optional
name              : .NET Runtime 8
categories        : Dependency
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : The .NET Desktop Runtime enables you to run existing Windows desktop applications. This release includes the .NET Runtime; you don't need to install it separately
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://github.com/dotnet/runtime
installed_size    : 193107342
impacted_process  : 
description_fr    : Le moteur d'exécution .NET Desktop Runtime vous permet d'exécuter des applications de bureau Windows existantes. Cette version inclut le Runtime .NET ; vous n'avez pas besoin de l'installer séparément
description_pl    : Środowisko uruchomieniowe .NET Desktop Runtime umożliwia uruchamianie istniejących aplikacji pulpitu systemu Windows. Ta wersja zawiera środowisko uruchomieniowe .NET; nie trzeba go instalować osobno
description_de    : Mit der .NET Desktop Runtime können Sie vorhandene Windows-Desktop-Anwendungen ausführen. Diese Version enthält die .NET Runtime; Sie brauchen sie nicht separat zu installieren
description_es    : .NET Desktop Runtime le permite ejecutar las aplicaciones de escritorio de Windows existentes. Esta versión incluye .NET Runtime; no es necesario instalarlo por separado
description_pt    : O .NET Desktop Runtime permite-lhe executar aplicações existentes do ambiente de trabalho do Windows. Esta versão inclui o .NET Runtime; não é necessário instalá-lo separadamente
description_it    : Il .NET Desktop Runtime consente di eseguire le applicazioni desktop di Windows esistenti. Questa versione include il .NET Runtime; non è necessario installarlo separatamente
description_nl    : Met de .NET Desktop Runtime kun je bestaande Windows desktopapplicaties uitvoeren. Deze release bevat de .NET Runtime; je hoeft deze niet apart te installeren
description_ru    : .NET Desktop Runtime позволяет запускать существующие приложения для настольных систем Windows. Данный выпуск включает в себя .NET Runtime; устанавливать его отдельно не требуется
audit_schedule    : 
editor            : Microsoft
keywords          : 
licence           : opensource_free,cpe:/a:mit:x11_license,wapt_public
homepage          : https://github.com/dotnet/runtime
package_uuid      : 7ebafd10-cb53-4f70-aff1-b0cf1de47d31
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/dotnet/core/tree/main/release-notes/8.0
min_os_version    : 6.1
max_os_version    : 
icon_sha256sum    : 1460db9c3885967269ebbc71d898181ab7d1506f3212bafc2df3acc648d43db0
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-01-28T14:20:20.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : PGZyttabI09tyAaX7ymZlVkzHWKnJmwWyKqNS12ix2p2sxEmyT6wu5LKJQrtezWnZwkXhljJ1ANve6ogSZyV6icvfZ5g3JlsrYu0o9FZAfzZWRx7cCvBOiOVjxtIAPKL30blc3HcqYAwl3ZHRmD2SPBmWQQc7praf7InO/Ah+XxJA9rkWPEAMqnF0RnxAlCwIJGbFrcnjyJH36Aje6lhIB2QqcyNcIYTAR9ezgs9+VlMxsCozr9I0paJTzaqu5+LMrDNtAod4n1gjAsHIWGHF68Kp01N4Dq8CXAOxb0VXqwuYQFJpgYgrv1uM8lW9CCtJbEywr/HHB8YVc4ywTZChQ==

# -*- coding: utf-8 -*-
from setuphelpers import *
import platform

"""
[
    {
        "key": "{113C0ADC-B9BD-4F95-9653-4F5BC540ED03}",
        "name": "Microsoft Windows Desktop Runtime - 8.0.0 (x64)",
        "version": "64.0.5329",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{113C0ADC-B9BD-4F95-9653-4F5BC540ED03}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": true,
    },
    {
        "key": "{3A706840-2882-423C-90EB-B31545E2BC7A}",
        "name": "Microsoft .NET Host FX Resolver - 8.0.0 (x64)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{3A706840-2882-423C-90EB-B31545E2BC7A}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": true,
    },
    {
        "key": "{76DEEAB3-122F-4231-83C7-0C35363D02F9}",
        "name": "Microsoft .NET Runtime - 8.0.0 (x64)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{76DEEAB3-122F-4231-83C7-0C35363D02F9}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": true,
    },
    {
        "key": "{D44822A8-FC28-42FC-8B1D-21A78579FC79}",
        "name": "Microsoft .NET Host - 8.0.0 (x64)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{D44822A8-FC28-42FC-8B1D-21A78579FC79}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": true,
    },
    {
        "key": "{17316079-d65a-4f25-a9f3-56c32781b15d}",
        "name": "Microsoft Windows Desktop Runtime - 8.0.0 (x64)",
        "version": "8.0.0.33101",
        "install_date": "",
        "install_location": "",
        "uninstall_string": '"C:\\ProgramData\\Package Cache\\{17316079-d65a-4f25-a9f3-56c32781b15d}\\windowsdesktop-runtime-8.0.0-win-x64.exe"  /uninstall',
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
    {
        "key": "{51CB5CFD-606C-4C2E-A21B-23F99C7790A7}",
        "name": "Microsoft Windows Desktop Runtime - 8.0.0 (x86)",
        "version": "64.0.5329",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{51CB5CFD-606C-4C2E-A21B-23F99C7790A7}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
    {
        "key": "{B3A56FDD-F6BC-482B-9DF5-2F8FA7759BE8}",
        "name": "Microsoft .NET Host - 8.0.0 (x86)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{B3A56FDD-F6BC-482B-9DF5-2F8FA7759BE8}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
    {
        "key": "{BA833631-63DD-417E-9818-300E20051F1A}",
        "name": "Microsoft .NET Runtime - 8.0.0 (x86)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{BA833631-63DD-417E-9818-300E20051F1A}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
    {
        "key": "{DA83EE57-3D79-4C50-A810-691E4CE72184}",
        "name": "Microsoft .NET Host FX Resolver - 8.0.0 (x86)",
        "version": "64.0.4211",
        "install_date": "2023-11-27 00:00:00",
        "install_location": "",
        "uninstall_string": "MsiExec.exe /X{DA83EE57-3D79-4C50-A810-691E4CE72184}",
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
    {
        "key": "{ec1cadaa-4a22-4433-8eb8-d24a98c67492}",
        "name": "Microsoft Windows Desktop Runtime - 8.0.0 (x86)",
        "version": "8.0.0.33101",
        "install_date": "",
        "install_location": "",
        "uninstall_string": '"C:\\ProgramData\\Package Cache\\{ec1cadaa-4a22-4433-8eb8-d24a98c67492}\\windowsdesktop-runtime-8.0.0-win-x86.exe"  /uninstall',
        "publisher": "Microsoft Corporation",
        "system_component": 0,
        "win64": false,
    },
]


"""


def install():
    dotnet_version = control.get_software_version().split(".")[0]

    # Installing the software
    silentflags = "/install /quiet /norestart"

    install_exe_if_needed(
        glob.glob("windowsdesktop-runtime-*x86.exe")[0],
        silentflags=silentflags,
        name=f"Microsoft Windows Desktop Runtime - {dotnet_version}.*(x86)",
        min_version="",
        force=True,  # force option, since the version is not easy to check, and the installer will take care of it.
    )
    
    if iswin64() or iswinarm():
        install_exe_if_needed(
            glob.glob("windowsdesktop-runtime-*x64.exe")[0],
            silentflags=silentflags,
            name=f"Microsoft Windows Desktop Runtime - {dotnet_version}.*(x64)",
            min_version="",
            force=True,  # force option, since the version is not easy to check, and the installer will take care of it.
        )

    if iswinarm():
        install_exe_if_needed(
            glob.glob("windowsdesktop-runtime-*arm64.exe")[0],
            silentflags=silentflags,
            name=f"Microsoft Windows Desktop Runtime - {dotnet_version}.*(arm64)",
            min_version="",
            force=True,  # force option, since the version is not easy to check, and the installer will take care of it.
        )


    # Clear uninstallkey to avoid the no-code audit and uninstall
    uninstallkey.clear()


def audit():
    # Declaring local variables
    audit_result = "OK"
    dotnet_version = control.get_software_version().split(".")[0]
    app_check = installed_softwares(name=f"Microsoft Windows Desktop Runtime - {dotnet_version}.*")
    audit_version = True

    # Auditing software
    if not app_check:
        print("%s is not installed" % control.package.split("-", 1)[-1].replace("-", " ").title())
        audit_result = "ERROR"
    elif audit_version:
        for to_audit in app_check:
            if r"ProgramData\Package Cache" in to_audit["uninstall_string"]:
                if Version(to_audit["version"]) < Version(control.get_software_version()):
                    print(f'{to_audit["name"]} is installed in version: {to_audit["version"]} instead of: {control.get_software_version()}.')
                    audit_result = "WARNING"
                else:
                    print("%s is installed and up-to-date." % to_audit["name"])

    return audit_result


def uninstall():
    # Declaring local variables
    dotnet_version = control.get_software_version().split(".")[0]

    for to_uninstall in installed_softwares(name=f"Microsoft Windows Desktop Runtime - {dotnet_version}.*"):
        if r"ProgramData\Package Cache" in to_uninstall["uninstall_string"]:
            print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
            killalltasks(ensure_list(control.impacted_process))
            run(uninstall_cmd(to_uninstall["key"]) + " /norestart")
            wait_uninstallkey_absent(to_uninstall["key"])
            if isdir(to_uninstall["install_location"]):
                remove_tree(to_uninstall["install_location"])


def iswinarm():
    return platform.machine() =='ARM64'

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    dotnet_version = ".".join(control.get_software_version().split(".")[:2])

    architecture = ensure_list(control.architecture)
    if "arm64" in architecture:
        archs = ["x86", "x64", "arm64"]
    elif "x64" in architecture:
        archs = ["x86", "x64"]
    else:
        archs = ["x86"]
        
    url = "https://dotnet.microsoft.com/en-us/download/dotnet/%s" % dotnet_version

    for arch in archs:
        # Getting latest version from official sources
        print("URL used is: %s" % url)
        for bs_search in bs_find_all(url, "a", "data-bi-dlnm", ".NET Release Table Download", proxies=proxies, timeout=10):
            if "runtime-desktop-" in bs_search.get("href", "") and arch in bs_search.get("href", ""):
                download_url_page = "https://dotnet.microsoft.com" + bs_search["href"]
                version = download_url_page.split("/")[-1].split("-")[2]
                break

        for bs_search in bs_find_all(download_url_page, "a", "onclick", "recordManualDownload()"):
            if version in bs_search.get("href", "") and "windowsdesktop-runtime" in bs_search.get("href", ""):
                download_url = bs_search["href"]
                latest_bin = download_url.split("/")[-1]
                break

        # Downloading latest binaries
        print("Latest %s version is: %s" % (control.name, version))
        print("Download URL is: %s" % download_url)
        if not isfile(latest_bin):
            print("Downloading: %s" % latest_bin)
            wget(download_url, latest_bin, proxies=proxies)

        # Checking version from file
        if get_os_name() == "Windows" and "windows" in control.target_os.lower():
            version_from_file = get_version_from_binary(latest_bin)
            if Version(version_from_file, 3) == Version(version, 3):
                print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
            else:
                error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")

    # Deleting outdated binaries
    remove_outdated_binaries(version)

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating or not update-package-sources
    return package_updated

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
235e0c9de8c2da91ddf3ffc031f4613c6a89cc1711c40dbe41324405cbc35b43 : WAPT/control
1460db9c3885967269ebbc71d898181ab7d1506f3212bafc2df3acc648d43db0 : WAPT/icon.png
612451e5b15ae71e58607a3b800421fa2b2bf01b57fc8d601275f42185f77abe : luti.json
1296d3c0480736d8ed48f49c03661c01b3b2b521c4423229da87718234b68e92 : setup.py
4948c13878fae61d411f3a4807c649a366c7eff00ec56f81272573f857338ea5 : update_package.py
fad1f3fefa7e9e3f291e4f54feb33d075d090c55ba79a1a456e27e65a2aeccaf : windowsdesktop-runtime-8.0.23-win-arm64.exe
36cb04562b6f4e93748517a0e1b417de2b5a06a5bf6e9bf7d0ec8f8bc5e4587c : windowsdesktop-runtime-8.0.23-win-x64.exe
594916420cf37e95de77c4b17682711a94ddef8dd29e9f0197ec80eb4c48fa9b : windowsdesktop-runtime-8.0.23-win-x86.exe