diff --git a/Directory.Packages.props b/Directory.Packages.props
index 77cb7a272..50150e6ac 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -3,14 +3,12 @@
-
-
-
+
diff --git a/Engine/Engine.csproj b/Engine/Engine.csproj
index e96f5c9d9..63b9a1b9c 100644
--- a/Engine/Engine.csproj
+++ b/Engine/Engine.csproj
@@ -75,33 +75,9 @@
$(DefineConstants);PSV7;CORECLR
-
-
-
-
-
-
-
-
-
+
-
-
- $(DefineConstants);PSV3
-
-
-
- $(DefineConstants);PSV3;PSV4
-
-
-
- $(DefineConstants);PSV3
-
-
-
- $(DefineConstants);PSV3;PSV4
-
diff --git a/Engine/PSScriptAnalyzer.psd1 b/Engine/PSScriptAnalyzer.psd1
index c7289e890..49fb93227 100644
--- a/Engine/PSScriptAnalyzer.psd1
+++ b/Engine/PSScriptAnalyzer.psd1
@@ -20,13 +20,13 @@ GUID = 'd6245802-193d-4068-a631-8863a4342a18'
CompanyName = 'Microsoft Corporation'
# Copyright statement for this module
-Copyright = '(c) Microsoft Corporation 2016. All rights reserved.'
+Copyright = '(c) Microsoft Corporation 2025. All rights reserved.'
# Description of the functionality provided by this module
Description = 'PSScriptAnalyzer provides script analysis and checks for potential code defects in the scripts by applying a group of built-in or customized rules on the scripts being analyzed.'
# Minimum version of the Windows PowerShell engine required by this module
-PowerShellVersion = '3.0'
+PowerShellVersion = '5.1'
# Name of the Windows PowerShell host required by this module
# PowerShellHostName = ''
diff --git a/PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Microsoft.PowerShell.CrossCompatibility.csproj b/PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Microsoft.PowerShell.CrossCompatibility.csproj
index da987fb69..c4667a950 100644
--- a/PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Microsoft.PowerShell.CrossCompatibility.csproj
+++ b/PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Microsoft.PowerShell.CrossCompatibility.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/README.md b/README.md
index 2ceffeb23..d038ec756 100644
--- a/README.md
+++ b/README.md
@@ -73,11 +73,11 @@ To install **PSScriptAnalyzer** from source code:
### Requirements
- [Latest .NET 8.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
-* If building for Windows PowerShell versions, then the .NET Framework 4.6.2 [targeting pack](https://dotnet.microsoft.com/en-us/download/dotnet-framework/net462) (also referred to as developer/targeting pack) need to be installed. This is only possible on Windows.
-* Optionally but recommended for development: [Visual Studio 2017/2019](https://www.visualstudio.com/downloads)
+- If building for Windows PowerShell versions, then the .NET Framework 4.6.2 [targeting pack](https://dotnet.microsoft.com/en-us/download/dotnet-framework/net462) (also referred to as developer/targeting pack) need to be installed. This is only possible on Windows.
+- Optional but recommended for development: [Visual Studio 2022](https://www.visualstudio.com/downloads)
+- Or [Visual Studio Code](https://code.visualstudio.com/download)
- [Pester v5 PowerShell module, available on PowerShell Gallery](https://github.com/pester/Pester)
- [PlatyPS PowerShell module, available on PowerShell Gallery](https://github.com/PowerShell/platyPS/releases)
-- Optionally but recommended for development: [Visual Studio](https://www.visualstudio.com/downloads)
### Steps
@@ -110,18 +110,6 @@ To install **PSScriptAnalyzer** from source code:
.\build.ps1 -PSVersion 5
```
- - Windows PowerShell version 4.0
-
- ```powershell
- .\build.ps1 -PSVersion 4
- ```
-
- - Windows PowerShell version 3.0
-
- ```powershell
- .\build.ps1 -PSVersion 3
- ```
-
- PowerShell 7
```powershell
@@ -134,7 +122,7 @@ To install **PSScriptAnalyzer** from source code:
.\build.ps1 -Documentation
```
-- Build all versions (PowerShell v3, v4, v5, and v6) and documentation
+- Build all versions (PowerShell v5 and v7) and documentation
```powershell
.\build.ps1 -All
diff --git a/build.ps1 b/build.ps1
index d6d661bf6..5dade48fe 100644
--- a/build.ps1
+++ b/build.ps1
@@ -7,7 +7,7 @@ param(
[switch]$All,
[Parameter(ParameterSetName="BuildOne")]
- [ValidateSet(3, 4, 5, 7)]
+ [ValidateSet(5, 7)]
[int]$PSVersion = $PSVersionTable.PSVersion.Major,
[Parameter(ParameterSetName="BuildOne")]
diff --git a/build.psm1 b/build.psm1
index 98a87af0d..5daba36ba 100644
--- a/build.psm1
+++ b/build.psm1
@@ -88,7 +88,7 @@ function Start-ScriptAnalyzerBuild
param (
[switch]$All,
- [ValidateSet(3, 4, 5, 7)]
+ [ValidateSet(5, 7)]
[int]$PSVersion = $PSVersionTable.PSVersion.Major,
[ValidateSet("Debug", "Release")]
@@ -124,7 +124,7 @@ function Start-ScriptAnalyzerBuild
if ( $All )
{
# Build all the versions of the analyzer
- foreach ($psVersion in 3, 4, 5, 7) {
+ foreach ($psVersion in 5, 7) {
Write-Verbose -Verbose -Message "Configuration: $Configuration PSVersion: $psVersion"
Start-ScriptAnalyzerBuild -Configuration $Configuration -PSVersion $psVersion -Verbose:$verboseWanted
}
@@ -147,12 +147,6 @@ function Start-ScriptAnalyzerBuild
$framework = 'net8'
}
- # build the appropriate assembly
- if ($PSVersion -match "[34]" -and $Framework -ne "net462")
- {
- throw ("ScriptAnalyzer for PS version '{0}' is not applicable to {1} framework" -f $PSVersion,$Framework)
- }
-
Push-Location -Path $projectRoot
if (-not (Test-Path "$projectRoot/global.json"))
{
@@ -176,14 +170,6 @@ function Start-ScriptAnalyzerBuild
switch ($PSVersion)
{
- 3
- {
- $destinationDirBinaries = "$script:destinationDir\PSv3"
- }
- 4
- {
- $destinationDirBinaries = "$script:destinationDir\PSv4"
- }
5
{
$destinationDirBinaries = "$script:destinationDir"
@@ -199,7 +185,7 @@ function Start-ScriptAnalyzerBuild
}
$buildConfiguration = $Configuration
- if ((3, 4, 7) -contains $PSVersion) {
+ if ($PSVersion -eq 7) {
$buildConfiguration = "PSV${PSVersion}${Configuration}"
}