diff --git a/CHANGELOG.md b/CHANGELOG.md
index 292397c8..f8419cfb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# Optimizely C# SDK Changelog
+## 4.6.0
+October 30, 2026
+
+### Changed
+
+**Local Holdouts: rule evaluation continues after a holdout hit**:
+When a user matches a local holdout on a rule, the SDK now excludes the user from that rule only
+and continues evaluating the remaining rules, instead of returning the holdout variation and skipping
+the rest of the flag. Each local holdout hit sends its own holdout impression event (using the
+existing event format), regardless of `sendFlagDecisions`. Global holdouts are unchanged.
+
+- Continue rule evaluation after local holdout hit ([#423](https://github.com/optimizely/csharp-sdk/pull/423))
+
## 4.5.0
September 3, 2026
diff --git a/OptimizelySDK.DemoApp/Properties/AssemblyInfo.cs b/OptimizelySDK.DemoApp/Properties/AssemblyInfo.cs
index dc0c34a0..d31bc94d 100644
--- a/OptimizelySDK.DemoApp/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.DemoApp/Properties/AssemblyInfo.cs
@@ -37,6 +37,6 @@
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK.Net35/Properties/AssemblyInfo.cs b/OptimizelySDK.Net35/Properties/AssemblyInfo.cs
index 5bf68dde..304737fb 100644
--- a/OptimizelySDK.Net35/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.Net35/Properties/AssemblyInfo.cs
@@ -37,6 +37,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK.Net40/Properties/AssemblyInfo.cs b/OptimizelySDK.Net40/Properties/AssemblyInfo.cs
index d04dbd79..b6c61190 100644
--- a/OptimizelySDK.Net40/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.Net40/Properties/AssemblyInfo.cs
@@ -37,6 +37,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK.NetStandard16/Properties/AssemblyInfo.cs b/OptimizelySDK.NetStandard16/Properties/AssemblyInfo.cs
index 26da9767..381c14d6 100644
--- a/OptimizelySDK.NetStandard16/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.NetStandard16/Properties/AssemblyInfo.cs
@@ -37,6 +37,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK.NetStandard20/Properties/AssemblyInfo.cs b/OptimizelySDK.NetStandard20/Properties/AssemblyInfo.cs
index 00588fb6..32c842fc 100644
--- a/OptimizelySDK.NetStandard20/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.NetStandard20/Properties/AssemblyInfo.cs
@@ -37,6 +37,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK.Tests/Properties/AssemblyInfo.cs b/OptimizelySDK.Tests/Properties/AssemblyInfo.cs
index af636a86..a92b12d3 100644
--- a/OptimizelySDK.Tests/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK.Tests/Properties/AssemblyInfo.cs
@@ -30,6 +30,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/OptimizelySDK/Properties/AssemblyInfo.cs b/OptimizelySDK/Properties/AssemblyInfo.cs
index 3844133e..21379407 100644
--- a/OptimizelySDK/Properties/AssemblyInfo.cs
+++ b/OptimizelySDK/Properties/AssemblyInfo.cs
@@ -41,6 +41,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("4.5.0.0")]
-[assembly: AssemblyFileVersion("4.5.0.0")]
-[assembly: AssemblyInformationalVersion("4.5.0")] // Used by NuGet.
+[assembly: AssemblyVersion("4.6.0.0")]
+[assembly: AssemblyFileVersion("4.6.0.0")]
+[assembly: AssemblyInformationalVersion("4.6.0")] // Used by NuGet.
diff --git a/README.md b/README.md
index f6cb468c..ebd240c0 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ dotnet add package Optimizely.SDK
**PackageReference:**
```xml
-
+
```
An ASP.NET MVC sample project is also available: