tis-dotnetfx3.5

3.5.30729.1-16
.NET Framework (pronounced as "dot net") is a software framework developed by Microsoft that runs primarily on Microsoft Windows
5133 downloads
Download

  Description 

  • package : tis-dotnetfx3.5
  • version : 3.5.30729.1-16
  • architecture : all
  • categories : System and network
  • maintainer : WAPT Team
  • description : .NET Framework (pronounced as "dot net") is a software framework developed by Microsoft that runs primarily on Microsoft Windows
  • locale :
  • target_os : windows
  • min_os_version : 6.1
  • max_os_version :
  • min_wapt_version : 1.5
  • sources : https://dotnet.microsoft.com/download/dotnet-framework
  • installed_size :
  • impacted_process :
  • description_fr : Le .NET Framework est un cadriciel (framework) pouvant être utilisé par un système d'exploitation Microsoft Windows
  • description_pl :
  • description_de :
  • description_es :
  • description_pt :
  • description_it :
  • description_nl :
  • description_ru :
  • editor : Microsoft
  • licence : Proprietary
  • signature_date : 2020-02-27T21:29:52.382560
  • Homepage : https://dotnet.microsoft.com/

  Setup.py 

# -*- coding: utf-8 -*-
from setuphelpers import *
import types,platform,re

uninstallkey = []
uninstallstring= []

bin_name = 'dotnetfx35.exe'

class Version(object):
    """Version object of form 0.0.0
        can compare with respect to natural numbering and not alphabetical

    >>> Version('0.10.2') > Version('0.2.5')
    True
    >>> Version('0.1.2') < Version('0.2.5')
    True
    >>> Version('0.1.2') == Version('0.1.2')
    True
    """

    def __init__(self,version,members_count=None):
        if version is None:
            version = ''
        assert isinstance(version,types.ModuleType) or isinstance(version,str) or isinstance(version,unicode) or isinstance(version,Version)
        if isinstance(version,types.ModuleType):
            self.versionstring = version.__version__
        elif isinstance(version,Version):
            self.versionstring = version.versionstring
        else:
            self.versionstring = version
        self.members = [ v.strip() for v in self.versionstring.split('.')]
        if members_count is not None:
            if len(self.members)<members_count:
                self.members.extend(['0'] * (members_count-len(self.members)))
            else:
                del self.members[members_count:]

    def __cmp__(self,aversion):
        def nat_cmp(a, b):
            a = a or ''
            b = b or ''

            def convert(text):
                if text.isdigit():
                    return int(text)
                else:
                    return text.lower()

            def alphanum_key(key):
                return [convert(c) for c in re.split('([0-9]+)', key)]

            return cmp(alphanum_key(a), alphanum_key(b))

        if not isinstance(aversion,Version):
            aversion = Version(aversion)
        for i in range(0,min([len(self.members),len(aversion.members)])):
            i1,i2  = self.members[i], aversion.members[i]
            v = nat_cmp(i1,i2)
            if v:
                return v
        return 0

    def __str__(self):
        return '.'.join(self.members)

    def __repr__(self):
        return "Version('{}')".format('.'.join(self.members))

def windows_version():
    """see https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx"""
    try:
        return Version(platform.win32_ver()[1],3)
    except:
        return Version(platform.win32_ver()[1])

# https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx
# https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx
Windows10 = Version('10.0',2)
WindowsServer2016TechnicalPreview = Version('10.0',2)

Windows81 = Version('6.3',2)
WindowsServer2012R2 = Version('6.3',2)

Windows8 = Version('6.2',2)
WindowsServer2012 = Version('6.2',2)

Windows7 = Version('6.1',2)
WindowsServer2008R2 = Version('6.1',2)

WindowsServer2008 = Version('6.0',2)
WindowsVista = Version('6.0',2)

WindowsServer2003R2 = Version('5.2',2)
WindowsServer2003 = Version('5.2',2)
WindowsXP64 = Version('5.2',2)

WindowsEmbeddedStandard2009 = WindowsXP = Version('5.1',2)
WindowsXP = Version('5.1',2)

Windows2000 = Version('5.0',2)


def install():
    dotnet35 = [ s for s in installed_softwares(uninstallkey = '{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}') if Version(s['version']) >= Version('3.5.30729')]

    if windows_version() >= '10.0.17762':
        with EnsureWUAUServRunning():
            with disable_file_system_redirection():
                run(r'dism.exe /Online /Enable-Feature /FeatureName:NetFx3 /Source:".\" /All /LimitAccess')

    #on windows 2008R2, dotnetfx3.5 is installed as a "feature" and cannot be installed with a separate download file.
    elif windows_version() >= Version('6.1',2) and windows_version() < '10.0.17762':
        # direct call gives a segmentation fault... so using cmd.exe indirect
        with EnsureWUAUServRunning():
            with disable_file_system_redirection():
                run(r'dism.exe /online /enable-feature /featurename:NetFx3')
    elif not dotnet35:
        print(run('dotnetfx35.exe /q /norestart'))
        uninstallkey.append('{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}')
        print("After install, restart your computer is recommended.")
    else:
        uninstallkey.append('{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}')


def uninstall():
    #on windows 2008R2, dotnetfx3.5 is installed as a "feature" and cannot be installed with a separate download file.
    if windows_version() >= Version('6.1',2):
        # direct call gives a segmentation fault... so using cmd.exe indirect
        with EnsureWUAUServRunning():
            with disable_file_system_redirection():
                run(r'dism.exe /online /disable-feature /featurename:NetFx3')
    else:
        for key in [
            '{0BD83598-C2EF-3343-847B-7D2E84599128}', # Microsoft .NET Framework 3.0 Service Pack 2 Language Pack - FRA
            '{A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}', # Microsoft .NET Framework 3.0 Service Pack 2
            '{72AD53CC-CCC0-3757-8480-9EE176866A7C}', # Microsoft .NET Framework 2.0 Service Pack 2 Language Pack - FRA
            '{3E31821C-7917-367E-938E-E65FC413EA31}', # Microsoft .NET Framework 3.5 Language Pack SP1 - fra
            '{C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}']: # Microsoft .NET Framework 2.0 Service Pack 2
                run_notfatal('msiexec /qn /X%s'%key)


def update_package():
    print('Update package content from upstream binary sources')

    # Get Proxy informations from WAPT settings
    proxy = {}
    if isfile(makepath(application_data(),'waptconsole','waptconsole.ini')):
        proxywapt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','http_proxy')
        if proxywapt :
            proxy = {'http':proxywapt,'https':proxywapt}

    #https://dotnet.microsoft.com/download/dotnet-framework

    url_dl = ('https://download.microsoft.com/download/2/0/E/20E90413-712F-438C-988E-FDAA79A8AC3D/dotnetfx35.exe')
    print('Download url is: ' + url_dl)

    if not isfile(bin_name):
        print('Downloading ' + bin_name)
        wget(url_dl,bin_name,proxies=proxy)


										

  Changelog 


https://support.microsoft.com/help/951847/list-of-changes-and-fixed-issues-in-the-net-framework-3-5-service-pack
  manifest.sha256 
[["WAPT/icon.png","bbae5b815f1b40523fb66ba82c7a0c286270f610a60c278b33da9f158a8e4ef8"],["WAPT/certificate.crt","a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf"],["dotnetfx35.exe","0582515bde321e072f8673e829e175ed2e7a53e803127c50253af76528e66bc1"],["WAPT/wapt.psproj","510d3af6fcf8f2eae5db684bb830ea9845576e76872b9b10854efaea6e4a4cd8"],["Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~x86~en-US~.cab","4bd2e48b0a23cedceebf17c301382ca60b0db7c78d666c981bf3fd40f83e47f9"],["microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab","aeed3e34d6a4308f5d37a16f7fc72630f6e84c6ebdf5fcfaa15e211cdeff2d53"],["Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~en-US~.cab","a5ddd724575ae17801f3ed3d06283d180b958fd7dbf6c478b79972229d27c9e0"],["microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~x86~~.cab","e5e20c9e2040a2cb1b5ac7e8c3c0a0a85ee48cd292e1b2bd1f078f68794b4cc5"],["README.md","dbccb6377290869570db60ca182e697b8141f4b3ad871d2efc8698fee1d1a839"],["WAPT/control","fad45ecb03fc6296553d5d1c8d50a13962c88ff8629b154064d536cf192b379c"],["Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~fr-FR~.cab","7d887e88448a92aca9add8784431146799ce260229e2a8128d65e5beb2a6a8d2"],["WAPT/changelog.txt","843c45853b50a066c242dba954fc510ba627ac9d6031de347b4f7f83352f007f"],["setup.py","2abf9f8d098e955fed010c2f4d7b154f7ae411a9ada1ee99fc29f00a90fe10ce"],["Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~x86~fr-FR~.cab","2b01f4a0d24aa14f1c1c61a2f17b3678edf3368138e83eb2fdeb051658ccb23c"],["Jenkinsfile","d3442f953e2bc03096f7f43c54aa30f16c06f844e42861efa28181377944d00d"]]