diff --git a/buildtools/Copy-Dependencies.ps1 b/buildtools/Copy-Dependencies.ps1
deleted file mode 100644
index bf7703b32ca8..000000000000
--- a/buildtools/Copy-Dependencies.ps1
+++ /dev/null
@@ -1,182 +0,0 @@
-# Find all dependency paths under a folder and copy each of them to the target folder
-Function Copy-Dependencies
-{
-    [CmdletBinding()]
-    Param
-    (
-        # The list of dependencies to copy
-        #
-        # Note, only dependencies of Core projects may currently be listed
-        # Restoring the full slns just for copying was disruptive to later tests
-        #
-        # If ever modifying this list, you likely need to update buildtools/NoticeForZips.txt and
-        # the corresponding copy-license-and-notice task as well.
-        [Parameter()]
-        [string[]]
-        $DependencyNames = @("microsoft.bcl.asyncinterfaces", "system.runtime.compilerservices.unsafe", "system.threading.tasks.extensions", 
-                             "awscrt", "awscrt-auth", "awscrt-http", "awscrt-checksums"),
-
-        # The list of dependencies with additional targets
-        # Each entry should contain the dependency name as a key, source and target as value
-        [Parameter()]
-        [hashtable]
-        $DependenciesWithAditionalTargets = @{
-            "awscrt" = @{Source = "netstandard2.0"; Target = "netcoreapp3.1"}
-            "awscrt-auth" = @{Source = "netstandard2.0"; Target = "netcoreapp3.1"}
-            "awscrt-http" = @{Source = "netstandard2.0"; Target = "netcoreapp3.1"}
-            "awscrt-checksums" = @{Source = "netstandard2.0"; Target = "netcoreapp3.1"}
-        },
-
-        # The location to copy the built dlls to
-        [Parameter(Mandatory=$true, Position=1)]
-        [string]
-        $Destination,
-
-        # Absolute path to a temporary folder to restore the Core projects into prior the copy the dependencies from
-        [Parameter(Mandatory=$true, Position=2)]
-        [string]
-        $TempRestoreFolder,
-
-        # The build type. If not specified defaults to 'release'.
-        [Parameter()]
-        [string]
-        $BuildType = "release",
-
-        # The supported platforms in .NET SDK
-        [Parameter()]
-        [string[]]
-        $AcceptedPlatforms =  @("net35","net45","netstandard2.0","netcoreapp3.1"),
-
-        # The supported platforms in .NET SDK
-        [Parameter()]
-        [string[]]
-        $ProjectFiles =  @("AWSSDK.Core.Net35.csproj", "AWSSDK.Core.Net45.csproj", "AWSSDK.Core.NetStandard.csproj", "AWSSDK.Extensions.CrtIntegration.Net35.csproj",
-                           "AWSSDK.Extensions.CrtIntegration.Net45.csproj", "AWSSDK.Extensions.CrtIntegration.NetStandard.csproj")
-
-    )
-
-    Process
-    {
-        foreach ($project in $ProjectFiles) 
-        {
-            # Check two paths to support running in either the root or /buildtools folders
-            if (Test-Path sdk/src/core/$project) {
-                dotnet restore -f --packages $TempRestoreFolder sdk/src/core/$project
-            }
-            elseif (Test-Path ../sdk/src/core/$project) 
-            {
-                dotnet restore -f --packages $TempRestoreFolder ../sdk/src/core/$project
-            }
-            elseif (Test-Path extensions/src/AWSSDK.Extensions.CrtIntegration/$project) 
-            {
-                dotnet restore -f --packages $TempRestoreFolder extensions/src/AWSSDK.Extensions.CrtIntegration/$project
-            }
-            elseif (Test-Path ../extensions/src/AWSSDK.Extensions.CrtIntegration/$project) 
-            {
-                dotnet restore -f --packages $TempRestoreFolder ../extensions/src/AWSSDK.Extensions.CrtIntegration/$project
-            }
-        }
-
-        foreach ($dependency in $DependencyNames) 
-        {
-            Write-Debug "Checking if $dependency exists in $TempRestoreFolder"
-            if (Test-Path $TempRestoreFolder/$dependency) {
-                $dependencyFolder = Get-Item -Path $TempRestoreFolder/$dependency
-                $versions = Get-ChildItem -Path $dependencyFolder | Sort-Object -Property Name -Descending
-                $max = $versions[0]
-                $libPath = Join-Path $max.FullName lib
-                if (Test-Path $libPath) 
-                {
-                    $targets = Get-Item -Path $libPath | Get-ChildItem
-                    foreach ($target in $targets) 
-                    {
-                        $targetDllPath = Join-Path $target.FullName *.dll
-                        if (($AcceptedPlatforms -match $target.Name) -And (Test-Path $targetDllPath)) 
-                        {
-                            $dllFile = Get-ChildItem -Path $targetDllPath
-                            if (@($dllFile).Length -eq 1) 
-                            {
-                                Write-Debug "Copying $dllFile to $Destination for $target"
-                                Copy-Dependency -SourceFile $dllFile -Destination $Destination -Platform $target.Name
-
-                                if ($DependenciesWithAditionalTargets.ContainsKey($dependency) -And 
-                                        $target.Name -eq $DependenciesWithAditionalTargets.$dependency.Source) 
-                                {
-                                    Copy-Dependency -SourceFile $dllFile -Destination $Destination -Platform $DependenciesWithAditionalTargets.$dependency.Target
-                                }
-
-                            } 
-                            else 
-                            {
-                                throw "Multiple dll files found for dependency $dependency"
-                            }
-                        }
-                        else 
-                        {
-                            Write-Debug "$target is not an accepted platform for $dependency"
-                        }
-                    }
-                }
-                else 
-                {
-                    throw "No lib folder found for dependency $dependency"
-                }
-            }
-            else 
-            {
-                throw "Could not find dependency $dependency in packages $TempRestoreFolder"
-            }
-        }
-
-        Write-Debug "Deleting $TempRestoreFolder"
-        Remove-Item -Recurse -Force $TempRestoreFolder
-    }
-}
-
-# Given the path of a dependency dll, copy it to the target folder for the correct platform
-Function Copy-Dependency
-{
-    [CmdletBinding()]
-    Param
-    (
-        # The path to the dll for the dependency
-        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)]
-        [string]
-        $SourceFile,
-
-        # The location to copy the built dll to
-        [Parameter(Mandatory=$true, Position=1)]
-        [string]
-        $Destination,
-
-        # The platform to copy.
-        [Parameter()]
-        [string]
-        $Platform
-    )
-
-    Process
-    {
-        Write-Verbose "Copying built SDK assemblies beneath $SourceFile to $Destination"
-        if (!(Test-Path $Destination))
-        {
-            New-Item $Destination -ItemType Directory
-        }
-        $platformDestination = Join-Path $Destination $Platform
-        if (!(Test-Path $platformDestination))
-        {
-            New-Item $platformDestination -ItemType Directory
-        }             
-        $assembly = Get-Item -Path $SourceFile
-        Write-Debug "Checking if $assembly exists"
-        if(!(Test-Path $assembly))
-        {
-            throw "Configured to copy $assembly but it was not found. Please check the path of the dependency."
-        }
-
-        Write-Host "Copying $($assembly.FullName) to $(Resolve-Path $platformDestination)"
-        Copy-Item $assembly.FullName -Destination $(Resolve-Path $platformDestination)
-    }
-}
-
-Copy-Dependencies -Destination ..\Deployment\assemblies $(Join-Path -Path $([System.IO.Path]::GetTempPath()) -ChildPath "/temp-nuget-packages")
\ No newline at end of file
diff --git a/buildtools/Copy-SDKAssemblies.ps1 b/buildtools/Copy-SDKAssemblies.ps1
deleted file mode 100644
index 3ac81f3d4424..000000000000
--- a/buildtools/Copy-SDKAssemblies.ps1
+++ /dev/null
@@ -1,244 +0,0 @@
-# Script parameters
-Param
-(
-    [string]$PublicKeyTokenToCheck,
-
-    # The build type. If not specified defaults to 'release'.
-    [Parameter()]
-    [string]$BuildType = "release",
-
-    [Parameter()]
-    [string[]]$ServiceList = ""
-)
-
-# Functions
-
-Function Get-PublicKeyToken
-{
-    [CmdletBinding()]
-	Param
-	(
-        # The assembly in question
-        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, ValueFromPipeline=$true, Position=0)]
-        [string]$AssemblyPath
-	)
-	
-    $token = $null
-    $token = [System.Reflection.Assembly]::LoadFrom($AssemblyPath).GetName().GetPublicKeyToken()
-    if ( $token )
-    {
-        $key = ""
-        foreach($b in $token)
-        {
-            $key += "{0:x2}" -f $b
-        }
-        return $key
-    }
-    else
-    {
-        Write-Error "NO TOKEN!! - $AssemblyPath"
-    }
-}
-
-Function Copy-SdkAssemblies
-{
-    [CmdletBinding()]
-    Param
-    (
-        # The root folder containing the core runtime or a service
-        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)]
-        [string]
-        $SourceRoot,
-
-        # The location to copy the built dll and pdb to
-        [Parameter(Mandatory=$true, Position=1)]
-        [string]
-        $Destination,
-
-        # The build type. If not specified defaults to 'release'.
-        [Parameter()]
-        [string]
-        $BuildType = "release",
-
-        # The platforms to copy. Defaults to all if not specified.
-        [Parameter()]
-        [string[]]
-        $Platforms = @("net35","net45","netstandard2.0","netcoreapp3.1","net8.0"),
-        
-        # The public key token that all assemblies should have. Optional.
-        [Parameter()]
-        [string]
-        $PublicKeyToken = "",
-
-        [Parameter()]
-        [string[]]
-        $PackageList = @()
-    )
-
-    Process
-    {
-        Write-Verbose "Copying built SDK assemblies beneath $SourceRoot to $Destination"
-
-        if (!(Test-Path $Destination))
-        {
-            New-Item $Destination -ItemType Directory
-        }
-
-        $dir = Get-Item $SourceRoot
-        $servicename = $dir.Name
-
-        foreach ($p in $Platforms)
-        {
-            $relativeSourcePath = "bin\$BuildType\$p"
-
-            if (!(Join-Path $dir.FullName $relativeSourcePath | Test-Path))
-            {
-                continue
-            }
-
-            $platformDestination = Join-Path $Destination $p
-            if (!(Test-Path $platformDestination))
-            {
-                New-Item $platformDestination -ItemType Directory
-            }
-        
-            if ($servicename.StartsWith("AWSSDK")) {
-                $filter = "bin\$BuildType\$p\$servicename.*"
-            }
-            else {
-                $filter = "bin\$BuildType\$p\AWSSDK.$servicename.*"
-            }
-			
-			$sourceDirectory = $null
-			$sourceDirectory = [System.IO.Path]::Combine($dir.FullName, 'bin', $BuildType, $p)
-			Write-Debug "Checking if $sourceDirectory exists"
-			if(!(Test-Path $sourceDirectory))
-			{
-				continue
-			}
-			
-            $files = gci -Path $dir.FullName -Filter $filter -ErrorAction Stop
-			
-            foreach ($a in $files)
-            {
-                $assemblyName = $a.Name
-                $assemblyExtension = [System.IO.Path]::GetExtension($assemblyName).ToLower()
-                if ($assemblyExtension -eq ".dll")
-                {
-                    $aToken = Get-PublicKeyToken -AssemblyPath $a.FullName
-                    Write-Debug "File $assemblyName has token = $aToken"
-                    if ($PublicKeyToken -ne $aToken)
-                    {
-                        $message = "File = {0}, Token = {1}, does not match Expected Token = {2}" -f $a.FullName, $aToken, $PublicKeyToken
-                        Write-Error $message
-                        return
-                    }
-                }
-                Write-Host "Copying $($a.FullName) to $($platformDestination)"
-                Copy-Item $a.FullName $platformDestination
-            }
-        }
-    }
-}
-
-Function Copy-CoreClrSdkAssemblies
-{
-	[CmdletBinding()]
-	Param
-	(
-		# The root folder containing the core runtime or a service
-		[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)]
-		[string]$SourceRoot,
-		# The location to copy the built dll and pdb to
-		[Parameter(Mandatory = $true, Position = 1)]
-		[string]$Destination,
-		# The build type. If not specified defaults to 'release'.
-		[Parameter()]
-		[string]$BuildType = "release",
-		# The platforms to copy. Defaults to all if not specified.
-		[Parameter()]
-		[string[]]$Platforms = @("netstandard1.5"),
-		# The public key token that all assemblies should have. Optional.
-		[Parameter()]
-		[string]$PublicKeyToken = ""
-	)
-	
-	Process
-	{
-		Write-Verbose "Copying built NetStandard SDK assemblies beneath $SourceRoot to $Destination"
-		
-		if (!(Test-Path $Destination))
-		{
-			New-Item $Destination -ItemType Directory
-		}
-		
-		$assemblyFoldersPattern = Join-Path $SourceRoot "*.Dnx"
-		$assemblyFolderRoots = gci $assemblyFoldersPattern
-		foreach ($afr in $assemblyFolderRoots)
-		{
-			foreach ($p in $Platforms)
-			{
-				$sourceFolder = Join-Path $afr (Join-Path $BuildType $p)
-				$targetFolder = Join-Path $Destination $p
-
-                if (!(Test-Path $targetFolder))
-                {
-                    New-Item $targetFolder -ItemType Directory
-                }
-
-				Write-Verbose "Copying from $sourceFolder to $targetFolder..."
-				
-				$files = gci $sourceFolder
-				
-				foreach ($f in $files)
-				{
-                    Write-Host "Copying $($f.FullName) to $($targetFolder)"
-					Copy-Item -Path $f.FullName -Destination $targetFolder
-				}
-			}
-		}
-	}
-}
-
-$builtservices = New-Object System.Collections.ArrayList
-if (![string]::IsNullOrEmpty($ServiceList))
-{
-    foreach($service in $ServiceList.split(@(';',',')))
-    {
-        if ($service -eq "Core")
-        {
-            $builtservices = $null
-            break
-        }
-        else
-        {
-            $builtservices.Add($service.ToLower())
-        }
-    }
-}
-else
-{
-    $builtservices = $null
-}
-
-Write-Verbose "Copying $BuildType SDK assemblies to deployment folders for BCL platforms"
-$args = @{
-	"Destination" = "..\Deployment\assemblies"
-	"PublicKeyToken" = $PublicKeyTokenToCheck
-	"BuildType" = $BuildType
-}
-
-Copy-SDKAssemblies -SourceRoot ..\sdk\src\Core -Destination ..\Deployment\assemblies -PublicKeyToken $PublicKeyTokenToCheck -BuildType $BuildType
-
-$services = Get-ChildItem ..\sdk\src\services
-foreach ($s in $services)
-{
-    if ($null -eq $builtservices -Or $builtservices.contains($s.Name.ToLower()))
-    {
-        Copy-SDKAssemblies -SourceRoot $s.FullName -Destination ..\Deployment\assemblies -PublicKeyToken $PublicKeyTokenToCheck -BuildType $BuildType
-    }
-}
-
-Write-Verbose "Copying $BuildType AWSSDK.Extensions assemblies to deployment folders"
-Copy-SDKAssemblies -SourceRoot ..\extensions\src\AWSSDK.Extensions.CrtIntegration -Destination ..\Deployment\assemblies -PublicKeyToken $PublicKeyTokenToCheck -BuildType $BuildType
-Copy-SDKAssemblies -SourceRoot ..\extensions\src\AWSSDK.Extensions.NETCore.Setup -Destination ..\Deployment\assemblies -PublicKeyToken $PublicKeyTokenToCheck -BuildType $BuildType
\ No newline at end of file
diff --git a/buildtools/CustomTasks/CustomTasks.csproj b/buildtools/CustomTasks/CustomTasks.csproj
index 6df343e70a88..f48541e86868 100644
--- a/buildtools/CustomTasks/CustomTasks.csproj
+++ b/buildtools/CustomTasks/CustomTasks.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFramework>
-    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net45</TargetFramework>
+    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net472</TargetFramework>
     <AssemblyName>CustomTasks</AssemblyName>
     <RootNamespace>CustomTasks</RootNamespace>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
@@ -20,7 +20,7 @@
     <PackageReference Include="Microsoft.Build.Utilities.Core" Version="16.11.0" />
   </ItemGroup>
 
-  <ItemGroup Condition="'$(TargetFramework)' == 'net45'">
+  <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
     <Reference Include="Microsoft.Build.Framework" />
     <Reference Include="Microsoft.Build.Utilities.v4.0" />
   </ItemGroup>
diff --git a/buildtools/TestWrapper/DummyMSTestCases/DummyMSTestCases.csproj b/buildtools/TestWrapper/DummyMSTestCases/DummyMSTestCases.csproj
index 932d78295ab5..86561e8b1f18 100644
--- a/buildtools/TestWrapper/DummyMSTestCases/DummyMSTestCases.csproj
+++ b/buildtools/TestWrapper/DummyMSTestCases/DummyMSTestCases.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFramework>
-    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net45</TargetFramework>
+    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net472</TargetFramework>
     <OutputType>Library</OutputType>
     <RootNamespace>DummyMSTestCases</RootNamespace>
     <AssemblyName>DummyMSTestCases</AssemblyName>
diff --git a/buildtools/TestWrapper/DummyNoRetryTestCases/DummyNoRetryTestCases.csproj b/buildtools/TestWrapper/DummyNoRetryTestCases/DummyNoRetryTestCases.csproj
index c60a2c2dff7f..cb9024486334 100644
--- a/buildtools/TestWrapper/DummyNoRetryTestCases/DummyNoRetryTestCases.csproj
+++ b/buildtools/TestWrapper/DummyNoRetryTestCases/DummyNoRetryTestCases.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFramework>
-    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net45</TargetFramework>
+    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net472</TargetFramework>
     <OutputType>Library</OutputType>
     <RootNamespace>DummyNoRetryTestCases</RootNamespace>
     <AssemblyName>DummyNoRetryTestCases</AssemblyName>
diff --git a/buildtools/TestWrapper/DummyXUnitTestCases/DummyXUnitTestCases.csproj b/buildtools/TestWrapper/DummyXUnitTestCases/DummyXUnitTestCases.csproj
index 67b342583175..46a6377e9d85 100644
--- a/buildtools/TestWrapper/DummyXUnitTestCases/DummyXUnitTestCases.csproj
+++ b/buildtools/TestWrapper/DummyXUnitTestCases/DummyXUnitTestCases.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFramework>
-    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net45</TargetFramework>
+    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net472</TargetFramework>
     <OutputType>Library</OutputType>
     <RootNamespace>DummyXUnitTestCases</RootNamespace>
     <AssemblyName>DummyXUnitTestCases</AssemblyName>
diff --git a/buildtools/TestWrapper/TestRunners/TestRunners.csproj b/buildtools/TestWrapper/TestRunners/TestRunners.csproj
index 6d8c0c75f62c..32d2c51d319d 100644
--- a/buildtools/TestWrapper/TestRunners/TestRunners.csproj
+++ b/buildtools/TestWrapper/TestRunners/TestRunners.csproj
@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework Condition="'$(OS)' != 'Windows_NT'">netstandard2.0</TargetFramework>
-    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net45</TargetFramework>
+    <TargetFramework Condition="'$(OS)' == 'Windows_NT'">net472</TargetFramework>
     <OutputType>Library</OutputType>
     <RootNamespace>TestWrapper</RootNamespace>
     <AssemblyName>TestWrapper</AssemblyName>
@@ -19,7 +19,7 @@
     <PackageReference Include="Microsoft.Build.Utilities.Core" Version="16.11.0" />
   </ItemGroup>
 
-  <ItemGroup Condition="'$(TargetFramework)' == 'net45'">
+  <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
     <Reference Include="Microsoft.Build.Framework" />
     <Reference Include="Microsoft.Build.Utilities.v4.0" />
   </ItemGroup>
diff --git a/buildtools/build.proj b/buildtools/build.proj
index 7828792d2819..9a4c6156e034 100644
--- a/buildtools/build.proj
+++ b/buildtools/build.proj
@@ -60,11 +60,9 @@
         </Otherwise>
     </Choose>
     <PropertyGroup>
-      <Net35SolutionsFile>AWSSDK.Net35.sln</Net35SolutionsFile>
-      <Net45SolutionsFile>AWSSDK.Net45.sln</Net45SolutionsFile>
+      <NetFrameworkSolutionsFile>AWSSDK.NetFramework.sln</NetFrameworkSolutionsFile>
       <NetStandardSolutionFile>AWSSDK.NetStandard.sln</NetStandardSolutionFile>
-      <Net35UnitTestProject>AWSSDK.UnitTests.Net35.csproj</Net35UnitTestProject>
-      <Net45UnitTestProject>AWSSDK.UnitTests.Net45.csproj</Net45UnitTestProject>
+      <NetFrameworkUnitTestProject>AWSSDK.UnitTests.NetFramework.csproj</NetFrameworkUnitTestProject>
       <NetStandardUnitTests>UnitTests.NetStandard.csproj</NetStandardUnitTests>
       <ReferenceServiceDLLs>false</ReferenceServiceDLLs>
       <GeneratorPartialBuildArgument></GeneratorPartialBuildArgument>
@@ -175,15 +173,10 @@
     </Target>
 
     <Target Name="build-sdk-desktop" DependsOnTargets="run-generator;build-custom-roslyn-analyzer;ValidateRepo;restore-nuget;override-endpoints-file">
-        <Message Text="Restore and compile .Net35 SDK"/>
-        <Exec Command="dotnet restore -f  $(Net35SolutionsFile)" WorkingDirectory="..\sdk"/>
-        <Exec Command="dotnet clean -c $(Configuration) $(Net35SolutionsFile)" WorkingDirectory="..\sdk"/>
-        <Exec Command="dotnet build -c $(Configuration) --no-incremental $(Net35SolutionsFile) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk"/>
-
-        <Message Text="Restore and compile .Net45 SDK"/>
-        <Exec Command="dotnet restore -f  $(Net45SolutionsFile)" WorkingDirectory="..\sdk"/>
-        <Exec Command="dotnet clean -c $(Configuration) $(Net45SolutionsFile)" WorkingDirectory="..\sdk"/>
-        <Exec Command="dotnet build -c $(Configuration) --no-incremental $(Net45SolutionsFile) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk"/>
+        <Message Text="Restore and compile NetFramework SDK"/>
+        <Exec Command="dotnet restore -f  $(NetFrameworkSolutionsFile)" WorkingDirectory="..\sdk"/>
+        <Exec Command="dotnet clean -c $(Configuration) $(NetFrameworkSolutionsFile)" WorkingDirectory="..\sdk"/>
+        <Exec Command="dotnet build -c $(Configuration) --no-incremental $(NetFrameworkSolutionsFile) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk"/>
     </Target>
 
     <Target Name="build-sdk-desktop-service" DependsOnTargets="run-generator;build-custom-roslyn-analyzer;restore-nuget-service;override-endpoints-file">
@@ -273,13 +266,9 @@
     </Target>
 
     <Target Name="build-tests" Condition="'$(ServiceList)'!=''">
-        <Exec Command="dotnet restore -f  $(Net35UnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
-        <Exec Command="dotnet clean -c $(Configuration) $(Net35UnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
-        <Exec Command="dotnet build -c $(Configuration) $(Net35UnitTestProject) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\test\UnitTests"/>
-
-        <Exec Command="dotnet restore -f  $(Net45UnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
-        <Exec Command="dotnet clean -c $(Configuration) $(Net45UnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
-        <Exec Command="dotnet build -c $(Configuration) $(Net45UnitTestProject) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\test\UnitTests"/>
+        <Exec Command="dotnet restore -f  $(NetFrameworkUnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
+        <Exec Command="dotnet clean -c $(Configuration) $(NetFrameworkUnitTestProject)" WorkingDirectory="..\sdk\test\UnitTests"/>
+        <Exec Command="dotnet build -c $(Configuration) $(NetFrameworkUnitTestProject) /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\test\UnitTests"/>
 
         <Exec Command="dotnet restore -f  $(NetStandardUnitTests)" WorkingDirectory="..\sdk\test\NetStandard\UnitTests"/>
         <Exec Command="dotnet clean -c $(Configuration) $(NetStandardUnitTests)" WorkingDirectory="..\sdk\test\NetStandard\UnitTests"/>
@@ -289,14 +278,7 @@
     <Target Name="run-unit-tests" DependsOnTargets="init;build-sdk;build-tests;build-test-wrapper;" >
         <MsTestWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\UnitTests\$(Net35UnitTestProject)"
-            Configuration="$(Configuration)"
-            Categories="$(BCLUnitTestCategories)"
-            TestExecutionProfile="test-runner"/>
-
-        <MsTestWrapperTask
-            TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\UnitTests\$(Net45UnitTestProject)"
+            TestContainer="..\sdk\test\UnitTests\$(NetFrameworkUnitTestProject)"
             Configuration="$(Configuration)"
             Categories="$(BCLUnitTestCategories)"
             TestExecutionProfile="test-runner"/>
@@ -310,27 +292,15 @@
     </Target>
 
     <Target Name="build-tests-service">
-        <Exec Command="dotnet restore -f  AWSSDK.UnitTests.%(ServiceName.FileName).Net35.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
-        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).Net35.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
-        <Exec Command="dotnet build -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).Net35.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
-
-        <Exec Command="dotnet restore -f  AWSSDK.UnitTests.%(ServiceName.FileName).Net45.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
-        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).Net45.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
-        <Exec Command="dotnet build -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).Net45.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
+        <Exec Command="dotnet restore -f  AWSSDK.UnitTests.%(ServiceName.FileName).NetFramework.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
+        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).NetFramework.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
+        <Exec Command="dotnet build -c $(Configuration) AWSSDK.UnitTests.%(ServiceName.FileName).NetFramework.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\UnitTests"/>
     </Target>
 
     <Target Name="run-unit-tests-service" DependsOnTargets="build-test-wrapper" >
         <MsTestWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\AWSSDK.UnitTests.%(ServiceName.FileName).Net35.csproj"
-            Configuration="$(Configuration)"
-            Categories="$(BCLUnitTestCategories)"
-            Condition="Exists('..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\Generated') Or Exists('..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\Custom')"
-            TestExecutionProfile="test-runner"/>
-
-        <MsTestWrapperTask
-            TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\AWSSDK.UnitTests.%(ServiceName.FileName).Net45.csproj"
+            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\AWSSDK.UnitTests.%(ServiceName.FileName).NetFramework.csproj"
             Configuration="$(Configuration)"
             Categories="$(BCLUnitTestCategories)"
             Condition="Exists('..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\Generated') Or Exists('..\sdk\test\Services\%(ServiceName.FileName)\UnitTests\Custom')"
@@ -348,37 +318,25 @@
 
     <Target Name="build-integ-tests-service">
         <Message Text="Build Integ tests csproj"/>
-        <Exec Command="dotnet restore -f  AWSSDK.IntegrationTests.%(ServiceName.FileName).Net35.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
-        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).Net35.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
-        <Exec Command="dotnet build -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).Net35.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
-
-        <Exec Command="dotnet restore -f  AWSSDK.IntegrationTests.%(ServiceName.FileName).Net45.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
-        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).Net45.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
-        <Exec Command="dotnet build -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).Net45.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
+        <Exec Command="dotnet restore -f  AWSSDK.IntegrationTests.%(ServiceName.FileName).NetFramework.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
+        <Exec Command="dotnet clean -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).NetFramework.csproj" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
+        <Exec Command="dotnet build -c $(Configuration) AWSSDK.IntegrationTests.%(ServiceName.FileName).NetFramework.csproj /p:AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=true;RunAnalyzersDuringBuild=$(RunAnalyzersDuringBuild);RuleSetFileForBuild=$(RuleSetFileForBuild)" WorkingDirectory="..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests" Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"/>
     </Target>
 
     <Target Name="run-integ-tests-service" Condition="'$(RunIntegTests)' != '' And '$(RunIntegTests)' != 'false'" DependsOnTargets="build-test-wrapper">
         <MsTestWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\IntegrationTests\AWSSDK.IntegrationTests.%(ServiceName.FileName).Net45.csproj"
+            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\IntegrationTests\AWSSDK.IntegrationTests.%(ServiceName.FileName).NetFramework.csproj"
             Configuration="$(Configuration)"
             Categories="$(IntegCategoriesToTest)"
             Condition="Exists('..\sdk\test\Services\%(ServiceName.FileName)\IntegrationTests')"
             TestExecutionProfile="test-runner"/>
-
-        <MsTestWrapperTask
-            TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\Services\%(ServiceName.FileName)\IntegrationTests\AWSSDK.IntegrationTests.%(ServiceName.FileName).Net35.csproj"
-            Configuration="$(Configuration)"
-            Categories="$(IntegCategoriesToTest)"
-            Condition="Exists('..\sdk\src\Services\%(ServiceName.FileName)\Test\IntegrationTests')"
-            TestExecutionProfile="test-runner"/>
     </Target>
 
     <Target Name="run-integ-tests" Condition="'$(RunIntegTests)' != '' And '$(RunIntegTests)' != 'false'" DependsOnTargets="init;build-sdk;">
         <MsTestWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\IntegrationTests\AWSSDK.IntegrationTests.Net45.csproj"
+            TestContainer="..\sdk\test\IntegrationTests\AWSSDK.IntegrationTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             Categories="$(IntegCategoriesToTest)"
             TestExecutionProfile="test-runner"/>
@@ -400,12 +358,7 @@
     <Target Name="run-smoke-tests" DependsOnTargets="build-test-wrapper" Condition="'$(ServiceList)'==''">
         <XUnitWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\SmokeTests\AWSSDK.SmokeTests.Net35.csproj"
-            Configuration="$(Configuration)"
-            TestExecutionProfile="test-runner"/>
-        <XUnitWrapperTask
-            TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\SmokeTests\AWSSDK.SmokeTests.Net45.csproj"
+            TestContainer="..\sdk\test\SmokeTests\AWSSDK.SmokeTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
         <XUnitWrapperTask
@@ -422,16 +375,10 @@
             TestContainer="..\sdk\test\CSMTest\Tests\IntegrationTests\AWSSDK.CSM.IntegrationTests.NetStandard.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
-        <Message Text="CSM 45"/>
-        <XUnitWrapperTask
-            TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\CSMTest\Tests\IntegrationTests\AWSSDK.CSM.IntegrationTests.Net45.csproj"
-            Configuration="$(Configuration)"
-            TestExecutionProfile="test-runner"/>
-        <Message Text="CSM 35"/>
+        <Message Text="CSM NetFramework"/>
         <XUnitWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\CSMTest\Tests\IntegrationTests\AWSSDK.CSM.IntegrationTests.Net35.csproj"
+            TestContainer="..\sdk\test\CSMTest\Tests\IntegrationTests\AWSSDK.CSM.IntegrationTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
     </Target>
@@ -439,7 +386,7 @@
     <Target Name="run-CSM-unit-tests">
         <XUnitWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.AppConfigTests.Net45.csproj"
+            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.AppConfigTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
         <XUnitWrapperTask
@@ -449,7 +396,7 @@
             TestExecutionProfile="test-runner"/>
         <XUnitWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.EnvFallBackTests.Net45.csproj"
+            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.EnvFallBackTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
         <XUnitWrapperTask
@@ -459,7 +406,7 @@
             TestExecutionProfile="test-runner"/>
         <XUnitWrapperTask
             TestSuiteRunner="dotnet"
-            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.SharedProfileTests.Net45.csproj"
+            TestContainer="..\sdk\test\CSMTest\Tests\UnitTests\FallBackConfigTests\AWSSDK.SharedProfileTests.NetFramework.csproj"
             Configuration="$(Configuration)"
             TestExecutionProfile="test-runner"/>
     </Target>
diff --git a/buildtools/doc-build.proj b/buildtools/doc-build.proj
index fe3a1f106986..55720004cf3a 100644
--- a/buildtools/doc-build.proj
+++ b/buildtools/doc-build.proj
@@ -20,10 +20,10 @@
         <!-- default location of the documentation samples. This should be the folder ABOVE AWSSDKDocSamples -->
         <DocSamplesFolder>$(MSBuildProjectDirectory)\..\docgenerator</DocSamplesFolder>
         
-        <!-- use net45 platform as the primary determinant of assemblies to inspect, and generate 
+        <!-- use net472 platform as the primary determinant of assemblies to inspect, and generate 
              for all services 
         -->
-        <SDKPlatform Condition="'$(SDKPlatform)'==''">net45</SDKPlatform>
+        <SDKPlatform Condition="'$(SDKPlatform)'==''">net472</SDKPlatform>
         <SDKServices Condition="'$(SDKServices)'==''">*</SDKServices>
         
         <DocBuildAssemblies>$(MSBuildProjectDirectory)\..\Deployment\assemblies</DocBuildAssemblies>
diff --git a/buildtools/self-service.proj b/buildtools/self-service.proj
deleted file mode 100644
index 24aa5f579777..000000000000
--- a/buildtools/self-service.proj
+++ /dev/null
@@ -1,101 +0,0 @@
-<Project ToolsVersion="4.0" 
-  DefaultTargets="full-build"
-  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  
-  <Import Project="common.targets" />
-
-  <PropertyGroup>
-    <SDKRepoPath></SDKRepoPath>
-    <ModelPath></ModelPath>
-    <ServicePrefix></ServicePrefix>
-    <BaseName></BaseName>
-    <CustomTasksAssembly>CustomTasks\bin\Debug\CustomTasks.dll</CustomTasksAssembly>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-
-  <Target Name="build-custom-tasks">
-    <Exec Command="..\sdk\.nuget\NuGet.exe restore .\CustomTasks\CustomTasks.sln" />
-    <MSBuild Projects=".\CustomTasks\CustomTasks.sln"
-             Targets="Clean;Build"
-             Properties="Configuration=Debug" />
-  </Target>
-
-  <UsingTask TaskName="CustomTasks.PlaceModelTask" AssemblyFile="$(CustomTasksAssembly)"/>
-
-  <Target Name="run-generator">
-    <Message Text="Build and run code generator"/>
-    <Exec Command="dotnet restore -f  AWSSDKGenerator.sln" WorkingDirectory="..\generator" />
-    <Exec Command="dotnet clean -c Release AWSSDKGenerator.sln" WorkingDirectory="..\generator"/>
-    <Exec Command="dotnet build -c Release --no-incremental AWSSDKGenerator.sln" WorkingDirectory="..\generator"/>
-    <Exec Command="ServiceClientGenerator.exe $(GeneratorPartialBuildArgument)"
-        WorkingDirectory="..\generator\ServiceClientGenerator\bin\Release"/>
-  </Target>
-
-  <Target Name="update-model">
-    <PlaceModelTask
-        SDKRepoPath="$(SDKRepoPath)"
-        ModelPath="$(ModelPath)"
-        ServicePrefix="$(ServicePrefix)"
-        WaitForDebugger="true">
-      <Output TaskParameter="BaseName" PropertyName="BaseName"/>
-    </PlaceModelTask>
-  </Target>
-
-  <Target Name="full-build" DependsOnTargets="build-custom-tasks;update-model;run-generator;build-sdk;consolidate-build"/>
-
-  <Target Name="build-sdk">
-    <Message Text="Compile the core runtime"/>
-    <Exec Command="dotnet restore -f ..\sdk\src\Core\AWSSDK.Core.Net35.csproj"/>
-    <Exec Command="dotnet msbuild ..\sdk\src\Core\AWSSDK.Core.Net35.csproj /p:Configuration=Release;AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=$(SignAssembly);ResolveNuGetPackages=false"/>
-    <Exec Command="dotnet restore -f ..\sdk\src\Core\AWSSDK.Core.Net45.csproj"/>
-    <Exec Command="dotnet msbuild ..\sdk\src\Core\AWSSDK.Core.Net45.csproj /p:Configuration=Release;AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=$(SignAssembly);ResolveNuGetPackages=false"/>
-
-    <Message Text="Compile the service $(BaseName)"/>
-    <Exec Command="dotnet restore -f ..\sdk\src\Services\$(BaseName)\AWSSDK.$(BaseName).Net35.csproj"/>
-    <Exec Command="dotnet msbuild ..\sdk\src\Services\$(BaseName)\AWSSDK.$(BaseName).Net35.csproj /p:Configuration=Release;AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=$(SignAssembly);ResolveNuGetPackages=false"/>
-    <Exec Command="dotnet restore -f ..\sdk\src\Services\$(BaseName)\AWSSDK.$(BaseName).Net45.csproj"/>
-    <Exec Command="dotnet msbuild ..\sdk\src\Services\$(BaseName)\AWSSDK.$(BaseName).Net45.csproj /p:Configuration=Release;AWSKeyFile=$(CustomSnkFileLocation);SignAssembly=$(SignAssembly);ResolveNuGetPackages=false"/>
-  </Target>
-  
-  <Target Name="consolidate-build">
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net35\AWSSDK.Core.dll"
-      DestinationFolder="$(Deployment)\Net35" />
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net35\AWSSDK.Core.pdb"
-      DestinationFolder="$(Deployment)\Net35" />
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net35\AWSSDK.Core.xml"
-      DestinationFolder="$(Deployment)\Net35" />
-
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net45\AWSSDK.Core.dll"
-      DestinationFolder="$(Deployment)\Net45" />
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net45\AWSSDK.Core.pdb"
-      DestinationFolder="$(Deployment)\Net45" />
-    <Copy
-      SourceFiles="..\sdk\src\Core\bin\Release\Net45\AWSSDK.Core.xml"
-      DestinationFolder="$(Deployment)\Net45" />
-
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net35\AWSSDK.$(BaseName).dll"
-      DestinationFolder="$(Deployment)\Net35" />
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net35\AWSSDK.$(BaseName).pdb"
-      DestinationFolder="$(Deployment)\Net35" />
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net35\AWSSDK.$(BaseName).xml"
-      DestinationFolder="$(Deployment)\Net35" />
-
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net45\AWSSDK.$(BaseName).dll"
-      DestinationFolder="$(Deployment)\Net45" />
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net45\AWSSDK.$(BaseName).pdb"
-      DestinationFolder="$(Deployment)\Net45" />
-    <Copy
-      SourceFiles="..\sdk\src\Services\$(BaseName)\bin\Release\Net45\AWSSDK.$(BaseName).xml"
-      DestinationFolder="$(Deployment)\Net45" />
-  </Target>
-</Project>
\ No newline at end of file
diff --git a/docgenerator/SDKDocGeneratorLib/GeneratorOptions.cs b/docgenerator/SDKDocGeneratorLib/GeneratorOptions.cs
index 4320f18d0eb5..896f27b6686f 100644
--- a/docgenerator/SDKDocGeneratorLib/GeneratorOptions.cs
+++ b/docgenerator/SDKDocGeneratorLib/GeneratorOptions.cs
@@ -61,7 +61,7 @@ public string SDKVersionFilePath
 
         /// <summary>
         /// The platform subfolder considered to be hosting the primary source of
-        /// assemblies for doc generation. If not specified, we attempt to use 'net45'.
+        /// assemblies for doc generation. If not specified, we attempt to use 'net472'.
         /// If that subfolder platform does not exist, we'll use the first subfolder 
         /// under the SDKAssembliesRoot that we find.
         /// </summary>
diff --git a/generator/.DevConfigs/a8dc513b-c930-4b25-be67-82beb4369c6b.json b/generator/.DevConfigs/a8dc513b-c930-4b25-be67-82beb4369c6b.json
new file mode 100644
index 000000000000..64d187acf83a
--- /dev/null
+++ b/generator/.DevConfigs/a8dc513b-c930-4b25-be67-82beb4369c6b.json
@@ -0,0 +1,9 @@
+{
+    "core": {
+      "changeLogMessages": [        
+        "Remove and adjust unused targets NET35 and NET45 from codebase."
+      ],
+      "type": "patch",
+      "updateMinimum": true
+    }
+  }
\ No newline at end of file
diff --git a/generator/ProtocolTestsGenerator/README.md b/generator/ProtocolTestsGenerator/README.md
index 7cf6453b6ac8..21367163bf04 100644
--- a/generator/ProtocolTestsGenerator/README.md
+++ b/generator/ProtocolTestsGenerator/README.md
@@ -26,9 +26,9 @@ cd ProtocolTestsGenerator
 ```
 3. The protocol tests will be outputted to the `sdk/test/ProtocolTests/Generated/<ProtocolName>/dotnet-protocol-test-codegen` folder.
 
-4. To run the tests you can open the AWSSDK.ProtocolTests.Net45.sln and run the tests in Visual Studio or run the following command in the `sdk/test/ProtocolTests` directory.
+4. To run the tests you can open the AWSSDK.ProtocolTests.NetFramework.sln and run the tests in Visual Studio or run the following command in the `sdk/test/ProtocolTests` directory.
 ```
-dotnet test AWSSDK.ProtocolTests.Net45.csproj
+dotnet test AWSSDK.ProtocolTests.NetFramework.csproj
 ```
 
 ## Debugging Protocol Tests
diff --git a/generator/ServiceClientGenerator/Program.cs b/generator/ServiceClientGenerator/Program.cs
index f3170e6c5d19..ad6381db27bc 100644
--- a/generator/ServiceClientGenerator/Program.cs
+++ b/generator/ServiceClientGenerator/Program.cs
@@ -86,8 +86,6 @@ static int Main(string[] args)
                     GeneratorDriver.GenerateDefaultConfigurationModeEnum(generationManifest, options);
                     GeneratorDriver.GenerateEndpoints(options);
                     GeneratorDriver.GenerateS3Enumerations(options);
-
-                    GeneratorDriver.RemoveLegacyFiles(options.SdkRootFolder);
                 }
                 else
                 {
diff --git a/generator/ServiceClientGeneratorLib/GeneratorDriver.cs b/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
index ba233a61bcdc..5ec9f195f374 100644
--- a/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
+++ b/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
@@ -1497,55 +1497,6 @@ private static void RemoveOrphanedServices(string path, IEnumerable<string> code
             }
         }
 
-        /// <summary>
-        /// Removes project files (*.csproj) and folders that are not needed in the next version of the SDK:
-        /// </summary>
-        public static void RemoveLegacyFiles(string sdkRootFolder)
-        {
-            // TODO: Remove this method once net35 and net45 are removed from the SDK.
-            var legacyProjectSuffixes = new HashSet<string>
-            {
-                "Net35.csproj",
-                "Net45.csproj"
-            };
-
-            var legacyFolderNames = new HashSet<string>
-            {
-                "_bcl35",
-                Utils.PathCombineAlt("Generated", "_bcl45"),
-                Utils.PathCombineAlt("Generated", "_bcl45+netstandard"),
-                Utils.PathCombineAlt("Generated", "Model", "_bcl45+netstandard"),
-                Utils.PathCombineAlt("Config", "35"),
-                Utils.PathCombineAlt("Config", "45")
-            };
-
-            var allProjectFiles = Directory.GetFiles(sdkRootFolder, "*.csproj", SearchOption.AllDirectories).OrderBy(f => f);
-            foreach (var file in allProjectFiles)
-            {
-                var fullPath = Utils.ConvertPathAlt(Path.GetFullPath(file));
-                var shouldDelete = legacyProjectSuffixes.Any(x => fullPath.EndsWith(x));
-
-                if (shouldDelete && File.Exists(file))
-                {
-                    Console.Error.WriteLine("**** Warning: Removing obsolete csproj file " + Path.GetFileName(file));
-                    File.Delete(file);
-                }
-            }
-
-            var allFolders = Directory.EnumerateDirectories(sdkRootFolder, "*", SearchOption.AllDirectories).OrderBy(d => d);
-            foreach (var folder in allFolders)
-            {
-                var fullPath = Utils.ConvertPathAlt(Path.GetFullPath(folder));
-                var shouldDelete = legacyFolderNames.Any(x => fullPath.Contains(x));
-
-                if (shouldDelete && Directory.Exists(folder))
-                {
-                    Console.Error.WriteLine("**** Warning: Removing obsolete folder " + fullPath);
-                    Directory.Delete(folder, recursive: true);
-                }
-            }
-        }
-
         /// <summary>
         /// Constructs endpoint constant name from a region code
         /// e.g. us-east-1 -> USEast1
diff --git a/generator/ServiceClientGeneratorLib/ServiceClientGeneratorLib.csproj b/generator/ServiceClientGeneratorLib/ServiceClientGeneratorLib.csproj
index 5186da9d5533..d480733c05b0 100644
--- a/generator/ServiceClientGeneratorLib/ServiceClientGeneratorLib.csproj
+++ b/generator/ServiceClientGeneratorLib/ServiceClientGeneratorLib.csproj
@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks Condition="'$(OS)' == 'Windows_NT'">netstandard2.0;netcoreapp3.1;net8.0;net45</TargetFrameworks>
+    <TargetFrameworks Condition="'$(OS)' == 'Windows_NT'">netstandard2.0;netcoreapp3.1;net8.0;net472</TargetFrameworks>
     <TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">netstandard2.0;netcoreapp3.1;net8.0</TargetFrameworks>
     <DebugType>portable</DebugType>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
@@ -702,7 +702,7 @@
   <ItemGroup>
 	<PackageReference Include="Microsoft.CSharp" Version="4.4.1" />
   </ItemGroup>
-  <ItemGroup Condition="'$(TargetFramework)' != 'net45'">
+  <ItemGroup Condition="'$(TargetFramework)' != 'net472'">
 	<PackageReference Include="System.CodeDom" Version="6.0.0" />
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/generator/ServiceClientGeneratorLib/SolutionFileCreator.cs b/generator/ServiceClientGeneratorLib/SolutionFileCreator.cs
index 44d3c4b1c2c0..c6ac40542d59 100644
--- a/generator/ServiceClientGeneratorLib/SolutionFileCreator.cs
+++ b/generator/ServiceClientGeneratorLib/SolutionFileCreator.cs
@@ -571,11 +571,7 @@ private void AddTestProjectsAndDependencies(IEnumerable<ProjectFileConfiguration
             var testProjectsRoot = Utils.PathCombineAlt(Options.SdkRootFolder, GeneratorDriver.TestsSubFoldername, GeneratorDriver.ServicesSubFoldername, serviceDirectory.Name);
             foreach (var configuration in projectFileConfigurations)
             {
-                // TODO: At the moment the project files for net35 / net45 have not been deleted yet, so the previous file pattern ("*.csproj") would include them in the service solution.
-                // We'll filter for the current target framework (similar to what's done for the CRT project), but this method is only invoked for the .NET Framework.
-                //
-                // We should revert the filter later so that the service specific solution includes all tests files (including any we eventually add for .NET Standard).
-                string filePattern = string.Format($"*.{configuration.Name}.csproj");
+                string filePattern = string.Format($"*.csproj");
                 
                 foreach (var projectFile in Directory.GetFiles(testProjectsRoot, filePattern, SearchOption.AllDirectories).OrderBy(f => f))
                 {
diff --git a/sdk/nuget-content/account-management.ps1 b/sdk/nuget-content/account-management.ps1
index 158e6e20e027..fb5e9a61ac5b 100644
--- a/sdk/nuget-content/account-management.ps1
+++ b/sdk/nuget-content/account-management.ps1
@@ -1,7 +1,7 @@
 
 function RegisterProfile()
 {
-	$dllpath = "..\lib\net35\AWSSDK.Core.dll"
+	$dllpath = "..\lib\net472\AWSSDK.Core.dll"
 	$sdkassembly = [System.Reflection.Assembly]::LoadFrom($dllpath)
 
 	$completed = $FALSE
diff --git a/sdk/src/Core/Amazon.Runtime/Internal/Util/StringUtils.cs b/sdk/src/Core/Amazon.Runtime/Internal/Util/StringUtils.cs
index 7c6134e0d365..880883a4ef40 100644
--- a/sdk/src/Core/Amazon.Runtime/Internal/Util/StringUtils.cs
+++ b/sdk/src/Core/Amazon.Runtime/Internal/Util/StringUtils.cs
@@ -384,17 +384,11 @@ public static string FromValueTypeList<T>(List<T> values) where T : struct
             }
             // See https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.1.1
             // FromDateTimeToRFC822 is compatible with IMF-fixdate
-#if NET35
-            else if (typeof(T) == typeof(DateTime))
-            {
-                return string.Join(",", values?.Select(x => FromDateTimeToRFC822((DateTime)(object)x)).ToArray());
-            }
-#else
             else if (typeof(T) == typeof(DateTime))
             {
                 return string.Join(",", values?.Select(x => FromDateTimeToRFC822((DateTime)(object)x)));
             }
-#endif
+
             return FromList(values?.Select(x => x.ToString()));
         }
 
diff --git a/sdk/test/Services/BearerTokenAuthTest/BearerTokenAuthTest.sln b/sdk/test/Services/BearerTokenAuthTest/BearerTokenAuthTest.sln
index b8fc1ec6074a..9547aa1dbb5b 100644
--- a/sdk/test/Services/BearerTokenAuthTest/BearerTokenAuthTest.sln
+++ b/sdk/test/Services/BearerTokenAuthTest/BearerTokenAuthTest.sln
@@ -2,15 +2,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 17
 VisualStudioVersion = 17.0.32112.339
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.BearerTokenAuthTest.Net35", "AWSSDK.BearerTokenAuthTest.Net35.csproj", "{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.BearerTokenAuthTest.Net45", "AWSSDK.BearerTokenAuthTest.Net45.csproj", "{34C91FE0-65E3-4BFA-9A60-C16C9ED95661}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.BearerTokenAuthTest.NetFramework", "AWSSDK.BearerTokenAuthTest.NetFramework.csproj", "{34C91FE0-65E3-4BFA-9A60-C16C9ED95661}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.BearerTokenAuthTest.NetStandard", "AWSSDK.BearerTokenAuthTest.NetStandard.csproj", "{EDED5705-E83B-4218-8511-4496E421A16E}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTests.BearerTokenAuthTest.Net35", "UnitTests\AWSSDK.UnitTests.BearerTokenAuthTest.Net35.csproj", "{85579F09-B8E3-467B-9687-D006CD51E21A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTests.BearerTokenAuthTest.Net45", "UnitTests\AWSSDK.UnitTests.BearerTokenAuthTest.Net45.csproj", "{B4101233-2606-4AC5-8381-C65C37062433}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTests.BearerTokenAuthTest.NetFramework", "UnitTests\AWSSDK.UnitTests.BearerTokenAuthTest.NetFramework.csproj", "{B4101233-2606-4AC5-8381-C65C37062433}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{EA8EC966-6E20-40F1-B2A8-6FA57FD09109}"
 EndProject
@@ -22,23 +18,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BearerTokenAuthTest", "Bear
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.CommonTest", "..\..\Common\AWSSDK.CommonTest.csproj", "{CB154817-7EE6-44D4-8D2E-26ADEE1796B0}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTestUtilities.Net35", "..\..\UnitTests\Custom\AWSSDK.UnitTestUtilities.Net35.csproj", "{A18E6335-5F20-4895-9F0F-04E6E3126C31}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTestUtilities.Net45", "..\..\UnitTests\Custom\AWSSDK.UnitTestUtilities.Net45.csproj", "{F0607948-1B0C-4154-A69C-4265A777D68B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTestUtilities.NetFramework", "..\..\UnitTests\Custom\AWSSDK.UnitTestUtilities.NetFramework.csproj", "{F0607948-1B0C-4154-A69C-4265A777D68B}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceClientGeneratorLib", "..\..\..\..\generator\ServiceClientGeneratorLib\ServiceClientGeneratorLib.csproj", "{68C67123-E660-424B-AA4E-AF4AD0511340}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.Net35", "..\..\..\src\Core\AWSSDK.Core.Net35.csproj", "{6259E58B-C4F1-49EA-AC0F-B25DF62E1692}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.Net45", "..\..\..\src\Core\AWSSDK.Core.Net45.csproj", "{F4EEAFD9-7272-41D3-AA40-6787FC567026}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.NetFramework", "..\..\..\src\Core\AWSSDK.Core.NetFramework.csproj", "{F4EEAFD9-7272-41D3-AA40-6787FC567026}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.NetStandard", "..\..\..\src\Core\AWSSDK.Core.NetStandard.csproj", "{822182F3-8B39-4FE4-8BFD-A34E0BB20CD7}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IntegrationTestDependencies", "IntegrationTestDependencies", "{705098E4-8A61-4E67-A10C-36B8BDCAA705}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Extensions.CrtIntegration.Net35", "..\..\..\..\extensions\src\AWSSDK.Extensions.CrtIntegration\AWSSDK.Extensions.CrtIntegration.Net35.csproj", "{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Extensions.CrtIntegration.Net45", "..\..\..\..\extensions\src\AWSSDK.Extensions.CrtIntegration\AWSSDK.Extensions.CrtIntegration.Net45.csproj", "{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Extensions.CrtIntegration.NetFramework", "..\..\..\..\extensions\src\AWSSDK.Extensions.CrtIntegration\AWSSDK.Extensions.CrtIntegration.NetFramework.csproj", "{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -46,10 +36,6 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6}.Release|Any CPU.Build.0 = Release|Any CPU
 		{34C91FE0-65E3-4BFA-9A60-C16C9ED95661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{34C91FE0-65E3-4BFA-9A60-C16C9ED95661}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{34C91FE0-65E3-4BFA-9A60-C16C9ED95661}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -58,10 +44,6 @@ Global
 		{EDED5705-E83B-4218-8511-4496E421A16E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{EDED5705-E83B-4218-8511-4496E421A16E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{EDED5705-E83B-4218-8511-4496E421A16E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{85579F09-B8E3-467B-9687-D006CD51E21A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{85579F09-B8E3-467B-9687-D006CD51E21A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{85579F09-B8E3-467B-9687-D006CD51E21A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{85579F09-B8E3-467B-9687-D006CD51E21A}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B4101233-2606-4AC5-8381-C65C37062433}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B4101233-2606-4AC5-8381-C65C37062433}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B4101233-2606-4AC5-8381-C65C37062433}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -70,10 +52,6 @@ Global
 		{CB154817-7EE6-44D4-8D2E-26ADEE1796B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{CB154817-7EE6-44D4-8D2E-26ADEE1796B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{CB154817-7EE6-44D4-8D2E-26ADEE1796B0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A18E6335-5F20-4895-9F0F-04E6E3126C31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A18E6335-5F20-4895-9F0F-04E6E3126C31}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A18E6335-5F20-4895-9F0F-04E6E3126C31}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A18E6335-5F20-4895-9F0F-04E6E3126C31}.Release|Any CPU.Build.0 = Release|Any CPU
 		{F0607948-1B0C-4154-A69C-4265A777D68B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F0607948-1B0C-4154-A69C-4265A777D68B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F0607948-1B0C-4154-A69C-4265A777D68B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -82,10 +60,6 @@ Global
 		{68C67123-E660-424B-AA4E-AF4AD0511340}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{68C67123-E660-424B-AA4E-AF4AD0511340}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{68C67123-E660-424B-AA4E-AF4AD0511340}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6259E58B-C4F1-49EA-AC0F-B25DF62E1692}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6259E58B-C4F1-49EA-AC0F-B25DF62E1692}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6259E58B-C4F1-49EA-AC0F-B25DF62E1692}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6259E58B-C4F1-49EA-AC0F-B25DF62E1692}.Release|Any CPU.Build.0 = Release|Any CPU
 		{F4EEAFD9-7272-41D3-AA40-6787FC567026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F4EEAFD9-7272-41D3-AA40-6787FC567026}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F4EEAFD9-7272-41D3-AA40-6787FC567026}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -94,10 +68,6 @@ Global
 		{822182F3-8B39-4FE4-8BFD-A34E0BB20CD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{822182F3-8B39-4FE4-8BFD-A34E0BB20CD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{822182F3-8B39-4FE4-8BFD-A34E0BB20CD7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1}.Release|Any CPU.Build.0 = Release|Any CPU
 		{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -107,20 +77,15 @@ Global
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{A95FF2B5-29BA-47A9-A727-ED9EDE75A3A6} = {521B68F1-39A1-4A5D-BE8E-9B61ECCA63AA}
 		{34C91FE0-65E3-4BFA-9A60-C16C9ED95661} = {521B68F1-39A1-4A5D-BE8E-9B61ECCA63AA}
 		{EDED5705-E83B-4218-8511-4496E421A16E} = {521B68F1-39A1-4A5D-BE8E-9B61ECCA63AA}
-		{85579F09-B8E3-467B-9687-D006CD51E21A} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
 		{B4101233-2606-4AC5-8381-C65C37062433} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
 		{521B68F1-39A1-4A5D-BE8E-9B61ECCA63AA} = {5CE46581-63F5-4C41-844E-2913ED987A25}
 		{CB154817-7EE6-44D4-8D2E-26ADEE1796B0} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
-		{A18E6335-5F20-4895-9F0F-04E6E3126C31} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
 		{F0607948-1B0C-4154-A69C-4265A777D68B} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
 		{68C67123-E660-424B-AA4E-AF4AD0511340} = {EA8EC966-6E20-40F1-B2A8-6FA57FD09109}
-		{6259E58B-C4F1-49EA-AC0F-B25DF62E1692} = {36AD9314-F760-4468-A6D5-BF3D8A785AFF}
 		{F4EEAFD9-7272-41D3-AA40-6787FC567026} = {36AD9314-F760-4468-A6D5-BF3D8A785AFF}
 		{822182F3-8B39-4FE4-8BFD-A34E0BB20CD7} = {36AD9314-F760-4468-A6D5-BF3D8A785AFF}
-		{E5DC7254-6EB1-46C5-A89B-9C98E58AADE1} = {705098E4-8A61-4E67-A10C-36B8BDCAA705}
 		{F8E79D9D-DB44-4EBF-BFBC-8946D0B5E9C3} = {705098E4-8A61-4E67-A10C-36B8BDCAA705}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
diff --git a/sdk/test/Services/CognitoSync/IntegrationTests/AWSSDK.IntegrationTests.CognitoSync.NetFramework.csproj b/sdk/test/Services/CognitoSync/IntegrationTests/AWSSDK.IntegrationTests.CognitoSync.NetFramework.csproj
index 845f5b57cf5f..192527e538cf 100644
--- a/sdk/test/Services/CognitoSync/IntegrationTests/AWSSDK.IntegrationTests.CognitoSync.NetFramework.csproj
+++ b/sdk/test/Services/CognitoSync/IntegrationTests/AWSSDK.IntegrationTests.CognitoSync.NetFramework.csproj
@@ -50,9 +50,4 @@
     <Reference Include="System.IO.Compression" />
     <Reference Include="System.Web" />
   </ItemGroup>
-
-  <ItemGroup>
-    <Folder Include="obj/net35/Debug/" />
-  </ItemGroup>
-
 </Project>
\ No newline at end of file
diff --git a/sdk/test/Services/ProtocolTestServices.NetFramework.sln b/sdk/test/Services/ProtocolTestServices.NetFramework.sln
index d8a800325fbc..d1c41b201e23 100644
--- a/sdk/test/Services/ProtocolTestServices.NetFramework.sln
+++ b/sdk/test/Services/ProtocolTestServices.NetFramework.sln
@@ -3,21 +3,21 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 17
 VisualStudioVersion = 17.8.34511.84
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.Net45", "..\..\src\Core\AWSSDK.Core.Net45.csproj", "{DEB7558F-8951-4798-8B43-0CBAE1578D61}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Core.NetFramework", "..\..\src\Core\AWSSDK.Core.NetFramework.csproj", "{DEB7558F-8951-4798-8B43-0CBAE1578D61}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.EC2Protocol.Net45", "EC2Protocol\AWSSDK.EC2Protocol.Net45.csproj", "{7245C0FC-DC66-4FB0-B3A1-9F9F4655843F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.EC2Protocol.NetFramework", "EC2Protocol\AWSSDK.EC2Protocol.NetFramework.csproj", "{7245C0FC-DC66-4FB0-B3A1-9F9F4655843F}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.JsonProtocol.Net45", "JsonProtocol\AWSSDK.JsonProtocol.Net45.csproj", "{174FFB1B-BD05-468E-A878-4D032213CF14}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.JsonProtocol.NetFramework", "JsonProtocol\AWSSDK.JsonProtocol.NetFramework.csproj", "{174FFB1B-BD05-468E-A878-4D032213CF14}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.JSONRPC10.Net45", "JSONRPC10\AWSSDK.JSONRPC10.Net45.csproj", "{9031CD7F-05C9-409D-8F0A-D5912CF07274}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.JSONRPC10.NetFramework", "JSONRPC10\AWSSDK.JSONRPC10.NetFramework.csproj", "{9031CD7F-05C9-409D-8F0A-D5912CF07274}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.QueryProtocol.Net45", "QueryProtocol\AWSSDK.QueryProtocol.Net45.csproj", "{60B1700F-ABDD-4FA5-A933-59641EBDD4BF}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.QueryProtocol.NetFramework", "QueryProtocol\AWSSDK.QueryProtocol.NetFramework.csproj", "{60B1700F-ABDD-4FA5-A933-59641EBDD4BF}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestJsonProtocol.Net45", "RestJsonProtocol\AWSSDK.RestJsonProtocol.Net45.csproj", "{E286B6C2-35FB-4A2A-95DA-9CF6DB635212}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestJsonProtocol.NetFramework", "RestJsonProtocol\AWSSDK.RestJsonProtocol.NetFramework.csproj", "{E286B6C2-35FB-4A2A-95DA-9CF6DB635212}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestXmlProtocol.Net45", "RestXmlProtocol\AWSSDK.RestXmlProtocol.Net45.csproj", "{F2784555-5671-4298-8AA8-5B138E3F20E8}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestXmlProtocol.NetFramework", "RestXmlProtocol\AWSSDK.RestXmlProtocol.NetFramework.csproj", "{F2784555-5671-4298-8AA8-5B138E3F20E8}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestXmlProtocolNamespace.Net45", "RestXmlProtocolNamespace\AWSSDK.RestXmlProtocolNamespace.Net45.csproj", "{EB946AFC-3C70-4962-86D5-1DE56106531F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.RestXmlProtocolNamespace.NetFramework", "RestXmlProtocolNamespace\AWSSDK.RestXmlProtocolNamespace.NetFramework.csproj", "{EB946AFC-3C70-4962-86D5-1DE56106531F}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/sdk/test/Services/RestJsonTest/UnitTests/RestJsonTests.cs b/sdk/test/Services/RestJsonTest/UnitTests/RestJsonTests.cs
index 906eb9ddc07b..a513284a1987 100644
--- a/sdk/test/Services/RestJsonTest/UnitTests/RestJsonTests.cs
+++ b/sdk/test/Services/RestJsonTest/UnitTests/RestJsonTests.cs
@@ -10,7 +10,7 @@
 using System.IO;
 using System.Text;
 
-namespace AWSSDK.UnitTests.RestJsonTest.Net35
+namespace AWSSDK.UnitTests.RestJsonTest
 {
     [TestClass]
     public class RestJsonTests
diff --git a/sdk/test/Services/RestXMLTest/UnitTests/HeaderListMarshallingTests.cs b/sdk/test/Services/RestXMLTest/UnitTests/HeaderListMarshallingTests.cs
index 319a263b731f..d2b857c72164 100644
--- a/sdk/test/Services/RestXMLTest/UnitTests/HeaderListMarshallingTests.cs
+++ b/sdk/test/Services/RestXMLTest/UnitTests/HeaderListMarshallingTests.cs
@@ -4,7 +4,7 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 using System.Collections.Generic;
 
-namespace AWSSDK.UnitTests.RestJsonTest.Net35
+namespace AWSSDK.UnitTests.RestJsonTest
 {
     [TestClass]
     public class HeaderListMarshallingTests