tis-dotnetfx3.5

3.5.30729.1-14
.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-14
  • 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:47.216507
  • 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')]

    #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 /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"],["WAPT/control","d243c5878f28e8cbf393ff6147e25de3411ed44abece17af3894dfe79c3ac9cf"],["setup.py","b1ffc5bb99f84b009f70714ff9bf7bc590eb901530ac728ac221bf0bfe95ca86"],["Jenkinsfile","d3442f953e2bc03096f7f43c54aa30f16c06f844e42861efa28181377944d00d"],["README.md","dbccb6377290869570db60ca182e697b8141f4b3ad871d2efc8698fee1d1a839"],["WAPT/changelog.txt","843c45853b50a066c242dba954fc510ba627ac9d6031de347b4f7f83352f007f"]]