diff --git a/.cursor/sdk_development.mdc b/.cursor/sdk_development.mdc
new file mode 100644
index 0000000000..38796d8c51
--- /dev/null
+++ b/.cursor/sdk_development.mdc
@@ -0,0 +1,218 @@
+# Sentry .NET SDK Development Guidelines
+
+This document contains important patterns, conventions, and guidelines learned during SDK development to ensure consistency and avoid common pitfalls.
+
+## Project Structure & Conventions
+
+### Project Organization
+- **Source packages**: `src/Sentry.Extensions.*`
+- **Tests**: `test/Sentry.Extensions.*.Tests`
+- **Samples**: `samples/Sentry.Samples.ME.*` (ME = Microsoft.Extensions)
+- **Solution file**: `Sentry.sln` in root
+
+### Naming Conventions
+- Extension packages for packages targeting Microsoft.Extensions.Technology: `Sentry.Extensions.{Technology}`
+- Sample projects for packages targeting Microsoft.Extensions.Technology: `Sentry.Samples.ME.{Technology}.{ProjectType}`
+- Test projects: `{SourceProject}.Tests`
+
+## Directory.Build.props Pattern
+
+### Central Package Management
+- Some packages are managed centrally in `Directory.Build.props` files
+- Check existing projects of the same type (src/test/samples) for reference
+
+### Hierarchical Structure
+```
+/Directory.Build.props # Root level
+/src/Directory.Build.props # Source projects
+/test/Directory.Build.props # Test projects
+/samples/Directory.Build.props # Sample projects
+```
+
+### Key Properties Set Centrally
+- `TargetFrameworks`
+- Common package references
+- Build configurations
+- Analyzer references
+
+## Sample Project Guidelines
+
+### DSN Configuration Pattern
+**Always use conditional compilation for DSN in samples:**
+
+```csharp
+builder.AddSentry(options =>
+{
+#if !SENTRY_DSN_DEFINED_IN_ENV
+ // A DSN is required. You can set here in code, or you can set it in the SENTRY_DSN environment variable.
+ // See https://docs.sentry.io/product/sentry-basics/dsn-explainer/
+ options.Dsn = SamplesShared.Dsn;
+#endif
+
+ // Other configuration...
+});
+```
+
+### Required Sample Files
+- **Don't exclude** `SamplesShared.cs` or `EnvironmentVariables.g.cs`
+- These provide proper DSN handling for CI/CD environments
+- The build system automatically defines `SENTRY_DSN_DEFINED_IN_ENV` when environment variable is set
+
+### Building and Running Samples
+```bash
+# Build (requires SENTRY_DSN environment variable)
+env SENTRY_DSN=your_dsn dotnet build samples/Project/Project.csproj
+
+# Run (requires SENTRY_DSN environment variable)
+env SENTRY_DSN=your_dsn dotnet run --project samples/Project/Project.csproj
+```
+
+### Sample Project Structure
+Base sample projects on existing ones like `Sentry.Samples.ME.Logging`:
+- Target the same TFM (such as `net9.0`) as other projects, for consistency
+- Follow the same logging and configuration patterns
+
+## Extension Package Guidelines
+
+### Target Frameworks
+- Use `net9.0;net8.0` for new extension packages (or whatever is being used on other projects)
+- Follow existing patterns in similar extensions
+
+### Package References
+- Check `Directory.Build.props` for centrally managed versions
+- Avoid duplicating dependencies already brought in transitively
+- Use exact versions for preview packages (e.g., `Microsoft.Extensions.AI`)
+
+### Internal Visibility
+```xml
+
+
+
+```
+
+### Hub Access Pattern
+**Always use automatic hub detection:**
+```csharp
+// ✅ Good - Automatic hub detection
+public static IChatClient WithSentry(this IChatClient client, string? agentName = null)
+{
+ return new SentryChatClient(client, HubAdapter.Instance, agentName);
+}
+
+// ✅ Good - DI fallback pattern
+public static ChatClientBuilder UseSentry(this ChatClientBuilder builder, string? agentName = null)
+{
+ return builder.Use((serviceProvider, inner) =>
+ {
+ var hub = serviceProvider.GetService() ?? HubAdapter.Instance;
+ return new SentryChatClient(inner, hub, agentName);
+ });
+}
+
+// ❌ Avoid - Requiring manual hub passing, unless it's for testing so it can be injected. Then use a `internal` overload ctor.
+public static IChatClient WithSentry(this IChatClient client, IHub hub, string? agentName = null)
+```
+
+## Span and Transaction Guidelines
+
+### Exception Handling in Spans
+**Always pass exception reference to Finish():**
+```csharp
+try
+{
+ var result = await operation();
+ transaction.Finish(SpanStatus.Ok);
+ return result;
+}
+catch (Exception ex)
+{
+ transaction.Finish(ex); // ✅ Pass exception reference
+ _hub.CaptureException(ex);
+ throw;
+}
+```
+
+
+## Testing Guidelines
+
+### Test Project Setup
+- Target same frameworks as source project
+- Reference source project, core Sentry project, and `Sentry.Testing`
+- Stay consist with other test projects, for example use `NSubstitute` for mocking
+
+### Test Structure
+```csharp
+[Fact]
+public async Task Operation_CallsInnerClient()
+{
+ // Arrange
+ var inner = Substitute.For();
+ var hub = Substitute.For();
+ var client = new YourClient(inner, hub);
+
+ // Act & Assert
+ await client.Method();
+ inner.Received(1).Method();
+}
+```
+
+### Async Enumerable Testing
+```csharp
+private static async IAsyncEnumerable CreateTestEnumerable()
+{
+ yield return item1;
+ await Task.Yield(); // Make it actually async
+ yield return item2;
+}
+```
+
+## Build and Test Commands
+
+### Standard Build Commands
+```bash
+# Build entire solution
+dotnet build Sentry.sln
+
+# Build specific project
+dotnet build src/ProjectName/ProjectName.csproj
+
+# Run tests
+dotnet test test/ProjectName.Tests/ProjectName.Tests.csproj
+
+# Build samples (with environment variable)
+env SENTRY_DSN=placeholder dotnet build samples/SampleProject/SampleProject.csproj
+```
+
+### Target Framework Testing
+- Always test on both target frameworks (net8.0, net9.0)
+- CI builds will validate against all supported frameworks
+
+## Common Pitfalls to Avoid
+
+1. **Don't exclude shared sample files** - They provide proper DSN handling
+3. **Don't require manual hub passing** - Use automatic detection
+4. **Don't use `SpanStatus.InternalError`** - Pass exception reference
+5. **Don't forget `[EnumeratorCancellation]`** - For async enumerable parameters
+6. **Don't use `yield return` in try-catch** - Create wrapper classes instead
+
+## File Organization
+
+### Extension Structure
+```
+src/Sentry.Extensions.Technology/
+├── Sentry.Extensions.Technology.csproj
+├── Extensions/
+│ └── TechnologyExtensions.cs
+└── Internal/
+ ├── SentryWrapper.cs
+ └── SentryEnumerable.cs (if needed)
+```
+
+### Test Structure
+```
+test/Sentry.Extensions.Technology.Tests/
+├── Sentry.Extensions.Technology.Tests.csproj
+└── WrapperTests.cs
+```
+
+This document should be updated as new patterns emerge and conventions evolve.
\ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
index 4e0c3a33cf..e031507117 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,6 +1,7 @@
+ true
5.14.0
13
true
@@ -71,8 +72,8 @@
-
-
+
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000000..3bbcf5ffab
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,248 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/benchmarks/Sentry.Benchmarks/Sentry.Benchmarks.csproj b/benchmarks/Sentry.Benchmarks/Sentry.Benchmarks.csproj
index 48231469f2..40b5a6afea 100644
--- a/benchmarks/Sentry.Benchmarks/Sentry.Benchmarks.csproj
+++ b/benchmarks/Sentry.Benchmarks/Sentry.Benchmarks.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/samples/Sentry.Samples.AspNetCore.Blazor.Wasm/Sentry.Samples.AspNetCore.Blazor.Wasm.csproj b/samples/Sentry.Samples.AspNetCore.Blazor.Wasm/Sentry.Samples.AspNetCore.Blazor.Wasm.csproj
index c64bb41a0a..024e4564da 100644
--- a/samples/Sentry.Samples.AspNetCore.Blazor.Wasm/Sentry.Samples.AspNetCore.Blazor.Wasm.csproj
+++ b/samples/Sentry.Samples.AspNetCore.Blazor.Wasm/Sentry.Samples.AspNetCore.Blazor.Wasm.csproj
@@ -15,13 +15,13 @@
-
-
+
+
-
+
diff --git a/samples/Sentry.Samples.AspNetCore.Grpc/Sentry.Samples.AspNetCore.Grpc.csproj b/samples/Sentry.Samples.AspNetCore.Grpc/Sentry.Samples.AspNetCore.Grpc.csproj
index 89dc8c6a3e..b1b3db60b4 100644
--- a/samples/Sentry.Samples.AspNetCore.Grpc/Sentry.Samples.AspNetCore.Grpc.csproj
+++ b/samples/Sentry.Samples.AspNetCore.Grpc/Sentry.Samples.AspNetCore.Grpc.csproj
@@ -5,10 +5,10 @@
-
-
-
-
+
+
+
+
diff --git a/samples/Sentry.Samples.AspNetCore.Serilog/Sentry.Samples.AspNetCore.Serilog.csproj b/samples/Sentry.Samples.AspNetCore.Serilog/Sentry.Samples.AspNetCore.Serilog.csproj
index a56d6004e2..038b1d36e0 100644
--- a/samples/Sentry.Samples.AspNetCore.Serilog/Sentry.Samples.AspNetCore.Serilog.csproj
+++ b/samples/Sentry.Samples.AspNetCore.Serilog/Sentry.Samples.AspNetCore.Serilog.csproj
@@ -5,9 +5,9 @@
-
-
-
+
+
+
diff --git a/samples/Sentry.Samples.AspNetCore.WebAPI.Profiling/Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj b/samples/Sentry.Samples.AspNetCore.WebAPI.Profiling/Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj
index 6ca934c5fc..963676658d 100644
--- a/samples/Sentry.Samples.AspNetCore.WebAPI.Profiling/Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj
+++ b/samples/Sentry.Samples.AspNetCore.WebAPI.Profiling/Sentry.Samples.AspNetCore.WebAPI.Profiling.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/samples/Sentry.Samples.Aws.Lambda.AspNetCoreServer/Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj b/samples/Sentry.Samples.Aws.Lambda.AspNetCoreServer/Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj
index 8d2dd8b221..4d1c5e9e53 100644
--- a/samples/Sentry.Samples.Aws.Lambda.AspNetCoreServer/Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj
+++ b/samples/Sentry.Samples.Aws.Lambda.AspNetCoreServer/Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj b/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj
index 3145f92db6..9228257297 100644
--- a/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj
+++ b/samples/Sentry.Samples.Azure.Functions.Worker/Sentry.Samples.Azure.Functions.Worker.csproj
@@ -6,10 +6,10 @@
-
-
-
-
+
+
+
+
diff --git a/samples/Sentry.Samples.Console.Basic/Sentry.Samples.Console.Basic.csproj b/samples/Sentry.Samples.Console.Basic/Sentry.Samples.Console.Basic.csproj
index bf9efb93d8..966b8b8ff2 100644
--- a/samples/Sentry.Samples.Console.Basic/Sentry.Samples.Console.Basic.csproj
+++ b/samples/Sentry.Samples.Console.Basic/Sentry.Samples.Console.Basic.csproj
@@ -57,7 +57,7 @@
-
+
diff --git a/samples/Sentry.Samples.EntityFramework/Sentry.Samples.EntityFramework.csproj b/samples/Sentry.Samples.EntityFramework/Sentry.Samples.EntityFramework.csproj
index 2e27079e5d..2f55ba7e33 100644
--- a/samples/Sentry.Samples.EntityFramework/Sentry.Samples.EntityFramework.csproj
+++ b/samples/Sentry.Samples.EntityFramework/Sentry.Samples.EntityFramework.csproj
@@ -15,11 +15,11 @@
-
-
+
+
-
+
diff --git a/samples/Sentry.Samples.GenericHost/Sentry.Samples.GenericHost.csproj b/samples/Sentry.Samples.GenericHost/Sentry.Samples.GenericHost.csproj
index 78283ed704..502fe51586 100644
--- a/samples/Sentry.Samples.GenericHost/Sentry.Samples.GenericHost.csproj
+++ b/samples/Sentry.Samples.GenericHost/Sentry.Samples.GenericHost.csproj
@@ -20,8 +20,8 @@
-
+
-
+
diff --git a/samples/Sentry.Samples.Google.Cloud.Functions/Sentry.Samples.Google.Cloud.Functions.csproj b/samples/Sentry.Samples.Google.Cloud.Functions/Sentry.Samples.Google.Cloud.Functions.csproj
index c212fcf871..6cd19a87a1 100644
--- a/samples/Sentry.Samples.Google.Cloud.Functions/Sentry.Samples.Google.Cloud.Functions.csproj
+++ b/samples/Sentry.Samples.Google.Cloud.Functions/Sentry.Samples.Google.Cloud.Functions.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/samples/Sentry.Samples.GraphQL.Client.Http/Sentry.Samples.GraphQL.Client.Http.csproj b/samples/Sentry.Samples.GraphQL.Client.Http/Sentry.Samples.GraphQL.Client.Http.csproj
index 183f1fef77..f4039657fb 100644
--- a/samples/Sentry.Samples.GraphQL.Client.Http/Sentry.Samples.GraphQL.Client.Http.csproj
+++ b/samples/Sentry.Samples.GraphQL.Client.Http/Sentry.Samples.GraphQL.Client.Http.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/samples/Sentry.Samples.GraphQL.Server/Sentry.Samples.GraphQL.Server.csproj b/samples/Sentry.Samples.GraphQL.Server/Sentry.Samples.GraphQL.Server.csproj
index 2078f97579..ff42891061 100644
--- a/samples/Sentry.Samples.GraphQL.Server/Sentry.Samples.GraphQL.Server.csproj
+++ b/samples/Sentry.Samples.GraphQL.Server/Sentry.Samples.GraphQL.Server.csproj
@@ -7,17 +7,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/Sentry.Samples.Hangfire/Sentry.Samples.Hangfire.csproj b/samples/Sentry.Samples.Hangfire/Sentry.Samples.Hangfire.csproj
index ac7347715a..ae4deabd5a 100644
--- a/samples/Sentry.Samples.Hangfire/Sentry.Samples.Hangfire.csproj
+++ b/samples/Sentry.Samples.Hangfire/Sentry.Samples.Hangfire.csproj
@@ -7,11 +7,11 @@
-
-
-
+
+
+
-
+
diff --git a/samples/Sentry.Samples.ME.Logging/Sentry.Samples.ME.Logging.csproj b/samples/Sentry.Samples.ME.Logging/Sentry.Samples.ME.Logging.csproj
index 0d60cbe639..063265d603 100644
--- a/samples/Sentry.Samples.ME.Logging/Sentry.Samples.ME.Logging.csproj
+++ b/samples/Sentry.Samples.ME.Logging/Sentry.Samples.ME.Logging.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj b/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj
index 9f87848b21..c1fd7938d3 100644
--- a/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj
+++ b/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj
@@ -110,9 +110,11 @@
-
-
-
+
+
+
+
+
diff --git a/samples/Sentry.Samples.NLog/Sentry.Samples.NLog.csproj b/samples/Sentry.Samples.NLog/Sentry.Samples.NLog.csproj
index 9b7e809ed0..a7cc22237c 100644
--- a/samples/Sentry.Samples.NLog/Sentry.Samples.NLog.csproj
+++ b/samples/Sentry.Samples.NLog/Sentry.Samples.NLog.csproj
@@ -12,7 +12,7 @@
-
+
true
diff --git a/samples/Sentry.Samples.OpenTelemetry.AspNetCore/Sentry.Samples.OpenTelemetry.AspNetCore.csproj b/samples/Sentry.Samples.OpenTelemetry.AspNetCore/Sentry.Samples.OpenTelemetry.AspNetCore.csproj
index 7159dfcb7e..47257c529c 100644
--- a/samples/Sentry.Samples.OpenTelemetry.AspNetCore/Sentry.Samples.OpenTelemetry.AspNetCore.csproj
+++ b/samples/Sentry.Samples.OpenTelemetry.AspNetCore/Sentry.Samples.OpenTelemetry.AspNetCore.csproj
@@ -7,10 +7,10 @@
-
-
-
-
+
+
+
+
diff --git a/samples/Sentry.Samples.OpenTelemetry.Console/Sentry.Samples.OpenTelemetry.Console.csproj b/samples/Sentry.Samples.OpenTelemetry.Console/Sentry.Samples.OpenTelemetry.Console.csproj
index 8b5c0e9654..76388d8aa7 100644
--- a/samples/Sentry.Samples.OpenTelemetry.Console/Sentry.Samples.OpenTelemetry.Console.csproj
+++ b/samples/Sentry.Samples.OpenTelemetry.Console/Sentry.Samples.OpenTelemetry.Console.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/samples/Sentry.Samples.Serilog/Sentry.Samples.Serilog.csproj b/samples/Sentry.Samples.Serilog/Sentry.Samples.Serilog.csproj
index f9df0dc20f..2f5738cdb2 100644
--- a/samples/Sentry.Samples.Serilog/Sentry.Samples.Serilog.csproj
+++ b/samples/Sentry.Samples.Serilog/Sentry.Samples.Serilog.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index a63860aea1..31ce6bd376 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -57,7 +57,7 @@
-
+
diff --git a/src/Sentry.Analyzers/Sentry.Analyzers.csproj b/src/Sentry.Analyzers/Sentry.Analyzers.csproj
index 223a1434f8..9af08e9d0f 100644
--- a/src/Sentry.Analyzers/Sentry.Analyzers.csproj
+++ b/src/Sentry.Analyzers/Sentry.Analyzers.csproj
@@ -11,12 +11,12 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
-
+
diff --git a/src/Sentry.Android.AssemblyReader/Sentry.Android.AssemblyReader.csproj b/src/Sentry.Android.AssemblyReader/Sentry.Android.AssemblyReader.csproj
index 2c6dcde33e..74c6798bd9 100644
--- a/src/Sentry.Android.AssemblyReader/Sentry.Android.AssemblyReader.csproj
+++ b/src/Sentry.Android.AssemblyReader/Sentry.Android.AssemblyReader.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/src/Sentry.AspNetCore.Blazor.WebAssembly/Sentry.AspNetCore.Blazor.WebAssembly.csproj b/src/Sentry.AspNetCore.Blazor.WebAssembly/Sentry.AspNetCore.Blazor.WebAssembly.csproj
index 4ff5701fa0..92e0c4d2fa 100644
--- a/src/Sentry.AspNetCore.Blazor.WebAssembly/Sentry.AspNetCore.Blazor.WebAssembly.csproj
+++ b/src/Sentry.AspNetCore.Blazor.WebAssembly/Sentry.AspNetCore.Blazor.WebAssembly.csproj
@@ -11,10 +11,10 @@
-
+
-
+
diff --git a/src/Sentry.AspNetCore.Grpc/Sentry.AspNetCore.Grpc.csproj b/src/Sentry.AspNetCore.Grpc/Sentry.AspNetCore.Grpc.csproj
index cafddf4b7e..65e59e2730 100644
--- a/src/Sentry.AspNetCore.Grpc/Sentry.AspNetCore.Grpc.csproj
+++ b/src/Sentry.AspNetCore.Grpc/Sentry.AspNetCore.Grpc.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/Sentry.AspNetCore/Sentry.AspNetCore.csproj b/src/Sentry.AspNetCore/Sentry.AspNetCore.csproj
index d75cabef9f..2cf0c5e0ac 100644
--- a/src/Sentry.AspNetCore/Sentry.AspNetCore.csproj
+++ b/src/Sentry.AspNetCore/Sentry.AspNetCore.csproj
@@ -17,10 +17,10 @@
-
+
-
+
diff --git a/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj b/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj
index 7d04ce1a0b..3dde66949a 100644
--- a/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj
+++ b/src/Sentry.Azure.Functions.Worker/Sentry.Azure.Functions.Worker.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj b/src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj
index b8dbd70ea6..9e64829fe6 100644
--- a/src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj
+++ b/src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj
@@ -1,5 +1,8 @@
+
+ false
+
net8.0-android34.0;net9.0-android35.0
8.6.0
$(BaseIntermediateOutputPath)sdks\$(TargetFramework)\Sentry\Android\$(SentryAndroidSdkVersion)\
@@ -27,6 +30,10 @@
+
+
+
+
-
-
+
+
-
+
diff --git a/src/Sentry.DiagnosticSource/Sentry.DiagnosticSource.csproj b/src/Sentry.DiagnosticSource/Sentry.DiagnosticSource.csproj
index 2bb043f837..779d26c79c 100644
--- a/src/Sentry.DiagnosticSource/Sentry.DiagnosticSource.csproj
+++ b/src/Sentry.DiagnosticSource/Sentry.DiagnosticSource.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/Sentry.EntityFramework/Sentry.EntityFramework.csproj b/src/Sentry.EntityFramework/Sentry.EntityFramework.csproj
index bd9096007f..9b944bd11a 100644
--- a/src/Sentry.EntityFramework/Sentry.EntityFramework.csproj
+++ b/src/Sentry.EntityFramework/Sentry.EntityFramework.csproj
@@ -22,11 +22,11 @@
-
+
-
+
diff --git a/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj b/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj
index 4d52cd091c..655b8bff61 100644
--- a/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj
+++ b/src/Sentry.Extensions.Logging/Sentry.Extensions.Logging.csproj
@@ -16,20 +16,20 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/src/Sentry.Google.Cloud.Functions/Sentry.Google.Cloud.Functions.csproj b/src/Sentry.Google.Cloud.Functions/Sentry.Google.Cloud.Functions.csproj
index 6c455dc928..f41fac9b6a 100644
--- a/src/Sentry.Google.Cloud.Functions/Sentry.Google.Cloud.Functions.csproj
+++ b/src/Sentry.Google.Cloud.Functions/Sentry.Google.Cloud.Functions.csproj
@@ -13,14 +13,14 @@
-
+
-
+
-
+
diff --git a/src/Sentry.Hangfire/Sentry.Hangfire.csproj b/src/Sentry.Hangfire/Sentry.Hangfire.csproj
index 941dd8c94d..a38e250d93 100644
--- a/src/Sentry.Hangfire/Sentry.Hangfire.csproj
+++ b/src/Sentry.Hangfire/Sentry.Hangfire.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/src/Sentry.Log4Net/Sentry.Log4Net.csproj b/src/Sentry.Log4Net/Sentry.Log4Net.csproj
index aebe69096e..9b3b296b3a 100644
--- a/src/Sentry.Log4Net/Sentry.Log4Net.csproj
+++ b/src/Sentry.Log4Net/Sentry.Log4Net.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/Sentry.Maui.CommunityToolkit.Mvvm/Sentry.Maui.CommunityToolkit.Mvvm.csproj b/src/Sentry.Maui.CommunityToolkit.Mvvm/Sentry.Maui.CommunityToolkit.Mvvm.csproj
index 4b24dc19ee..7ed5ee657b 100644
--- a/src/Sentry.Maui.CommunityToolkit.Mvvm/Sentry.Maui.CommunityToolkit.Mvvm.csproj
+++ b/src/Sentry.Maui.CommunityToolkit.Mvvm/Sentry.Maui.CommunityToolkit.Mvvm.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/Sentry.Maui/Sentry.Maui.csproj b/src/Sentry.Maui/Sentry.Maui.csproj
index 38c14e4788..73a1d6369d 100644
--- a/src/Sentry.Maui/Sentry.Maui.csproj
+++ b/src/Sentry.Maui/Sentry.Maui.csproj
@@ -42,10 +42,17 @@
+
+
+
+
+
+
+
diff --git a/src/Sentry.NLog/Sentry.NLog.csproj b/src/Sentry.NLog/Sentry.NLog.csproj
index ba6ea63332..923be45a45 100644
--- a/src/Sentry.NLog/Sentry.NLog.csproj
+++ b/src/Sentry.NLog/Sentry.NLog.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/Sentry.OpenTelemetry/Sentry.OpenTelemetry.csproj b/src/Sentry.OpenTelemetry/Sentry.OpenTelemetry.csproj
index 66daebfda3..9b846f5503 100644
--- a/src/Sentry.OpenTelemetry/Sentry.OpenTelemetry.csproj
+++ b/src/Sentry.OpenTelemetry/Sentry.OpenTelemetry.csproj
@@ -17,7 +17,7 @@
-
+
diff --git a/src/Sentry.Profiling/Sentry.Profiling.csproj b/src/Sentry.Profiling/Sentry.Profiling.csproj
index c453876242..329fd72e31 100644
--- a/src/Sentry.Profiling/Sentry.Profiling.csproj
+++ b/src/Sentry.Profiling/Sentry.Profiling.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/Sentry.Serilog/Sentry.Serilog.csproj b/src/Sentry.Serilog/Sentry.Serilog.csproj
index eca849fcd6..b0865a362d 100644
--- a/src/Sentry.Serilog/Sentry.Serilog.csproj
+++ b/src/Sentry.Serilog/Sentry.Serilog.csproj
@@ -28,11 +28,11 @@
-
+
-
+
diff --git a/src/Sentry.SourceGenerators/Sentry.SourceGenerators.csproj b/src/Sentry.SourceGenerators/Sentry.SourceGenerators.csproj
index 047ca032ed..c1fcb30a36 100644
--- a/src/Sentry.SourceGenerators/Sentry.SourceGenerators.csproj
+++ b/src/Sentry.SourceGenerators/Sentry.SourceGenerators.csproj
@@ -11,11 +11,11 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/src/Sentry/Sentry.csproj b/src/Sentry/Sentry.csproj
index 1ba7e0cc97..7f17ffce96 100644
--- a/src/Sentry/Sentry.csproj
+++ b/src/Sentry/Sentry.csproj
@@ -43,7 +43,7 @@
-
+
@@ -65,7 +65,7 @@
https://github.com/SimonCropp/Polyfill
-->
-
+
-
+
@@ -83,7 +83,7 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
+
+
diff --git a/test/Sentry.Analyzers.Tests/Sentry.Analyzers.Tests.csproj b/test/Sentry.Analyzers.Tests/Sentry.Analyzers.Tests.csproj
index 9750861210..5423dfe3ea 100644
--- a/test/Sentry.Analyzers.Tests/Sentry.Analyzers.Tests.csproj
+++ b/test/Sentry.Analyzers.Tests/Sentry.Analyzers.Tests.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/test/Sentry.AspNetCore.Grpc.Tests/Sentry.AspNetCore.Grpc.Tests.csproj b/test/Sentry.AspNetCore.Grpc.Tests/Sentry.AspNetCore.Grpc.Tests.csproj
index 24227ac339..d085ae5380 100644
--- a/test/Sentry.AspNetCore.Grpc.Tests/Sentry.AspNetCore.Grpc.Tests.csproj
+++ b/test/Sentry.AspNetCore.Grpc.Tests/Sentry.AspNetCore.Grpc.Tests.csproj
@@ -5,9 +5,9 @@
-
-
-
+
+
+
diff --git a/test/Sentry.AspNetCore.TestUtils/Sentry.AspNetCore.TestUtils.csproj b/test/Sentry.AspNetCore.TestUtils/Sentry.AspNetCore.TestUtils.csproj
index c60ea32096..d434473f04 100644
--- a/test/Sentry.AspNetCore.TestUtils/Sentry.AspNetCore.TestUtils.csproj
+++ b/test/Sentry.AspNetCore.TestUtils/Sentry.AspNetCore.TestUtils.csproj
@@ -30,31 +30,31 @@
See https://github.com/dotnet/aspnetcore/issues/15423
-->
-
-
+
+
-
-
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/Sentry.DiagnosticSource.IntegrationTests.csproj b/test/Sentry.DiagnosticSource.IntegrationTests/Sentry.DiagnosticSource.IntegrationTests.csproj
index 504be0b959..13a509e331 100644
--- a/test/Sentry.DiagnosticSource.IntegrationTests/Sentry.DiagnosticSource.IntegrationTests.csproj
+++ b/test/Sentry.DiagnosticSource.IntegrationTests/Sentry.DiagnosticSource.IntegrationTests.csproj
@@ -8,34 +8,34 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
diff --git a/test/Sentry.DiagnosticSource.Tests/Sentry.DiagnosticSource.Tests.csproj b/test/Sentry.DiagnosticSource.Tests/Sentry.DiagnosticSource.Tests.csproj
index cf4e670998..0e6d6d3f81 100644
--- a/test/Sentry.DiagnosticSource.Tests/Sentry.DiagnosticSource.Tests.csproj
+++ b/test/Sentry.DiagnosticSource.Tests/Sentry.DiagnosticSource.Tests.csproj
@@ -8,23 +8,23 @@
-
-
+
+
-
-
+
+
-
+
-
-
+
+
diff --git a/test/Sentry.EntityFramework.Tests/Sentry.EntityFramework.Tests.csproj b/test/Sentry.EntityFramework.Tests/Sentry.EntityFramework.Tests.csproj
index d81324346b..221df1b448 100644
--- a/test/Sentry.EntityFramework.Tests/Sentry.EntityFramework.Tests.csproj
+++ b/test/Sentry.EntityFramework.Tests/Sentry.EntityFramework.Tests.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/test/Sentry.Extensions.Logging.Tests/Sentry.Extensions.Logging.Tests.csproj b/test/Sentry.Extensions.Logging.Tests/Sentry.Extensions.Logging.Tests.csproj
index 27b9c73763..3aa7b9422b 100644
--- a/test/Sentry.Extensions.Logging.Tests/Sentry.Extensions.Logging.Tests.csproj
+++ b/test/Sentry.Extensions.Logging.Tests/Sentry.Extensions.Logging.Tests.csproj
@@ -10,13 +10,13 @@
-
+
-
+
diff --git a/test/Sentry.Hangfire.Tests/Sentry.Hangfire.Tests.csproj b/test/Sentry.Hangfire.Tests/Sentry.Hangfire.Tests.csproj
index 15a9d7f0c8..1734316f12 100644
--- a/test/Sentry.Hangfire.Tests/Sentry.Hangfire.Tests.csproj
+++ b/test/Sentry.Hangfire.Tests/Sentry.Hangfire.Tests.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/test/Sentry.Log4Net.Tests/Sentry.Log4Net.Tests.csproj b/test/Sentry.Log4Net.Tests/Sentry.Log4Net.Tests.csproj
index 9939555343..38806fb5fb 100644
--- a/test/Sentry.Log4Net.Tests/Sentry.Log4Net.Tests.csproj
+++ b/test/Sentry.Log4Net.Tests/Sentry.Log4Net.Tests.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/Sentry.Maui.CommunityToolkit.Mvvm.Tests.csproj b/test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/Sentry.Maui.CommunityToolkit.Mvvm.Tests.csproj
index ff936b6764..e1380cf587 100644
--- a/test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/Sentry.Maui.CommunityToolkit.Mvvm.Tests.csproj
+++ b/test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/Sentry.Maui.CommunityToolkit.Mvvm.Tests.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/test/Sentry.Maui.Device.TestApp/Sentry.Maui.Device.TestApp.csproj b/test/Sentry.Maui.Device.TestApp/Sentry.Maui.Device.TestApp.csproj
index 15beeb7e92..2de697072d 100644
--- a/test/Sentry.Maui.Device.TestApp/Sentry.Maui.Device.TestApp.csproj
+++ b/test/Sentry.Maui.Device.TestApp/Sentry.Maui.Device.TestApp.csproj
@@ -70,12 +70,12 @@
-
-
-
+
+
+
-
+
@@ -85,13 +85,13 @@
-
-
+
+
-
-
+
+
diff --git a/test/Sentry.Maui.Tests/Sentry.Maui.Tests.csproj b/test/Sentry.Maui.Tests/Sentry.Maui.Tests.csproj
index ba3c3fbd09..da9d13d7f4 100644
--- a/test/Sentry.Maui.Tests/Sentry.Maui.Tests.csproj
+++ b/test/Sentry.Maui.Tests/Sentry.Maui.Tests.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/test/Sentry.MauiTrimTest/Sentry.MauiTrimTest.csproj b/test/Sentry.MauiTrimTest/Sentry.MauiTrimTest.csproj
index 510b462757..9d9eaea598 100644
--- a/test/Sentry.MauiTrimTest/Sentry.MauiTrimTest.csproj
+++ b/test/Sentry.MauiTrimTest/Sentry.MauiTrimTest.csproj
@@ -60,8 +60,8 @@
-
-
+
+
diff --git a/test/Sentry.NLog.Tests/Sentry.NLog.Tests.csproj b/test/Sentry.NLog.Tests/Sentry.NLog.Tests.csproj
index bc003e6461..81dee00560 100644
--- a/test/Sentry.NLog.Tests/Sentry.NLog.Tests.csproj
+++ b/test/Sentry.NLog.Tests/Sentry.NLog.Tests.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/test/Sentry.OpenTelemetry.Tests/Sentry.OpenTelemetry.Tests.csproj b/test/Sentry.OpenTelemetry.Tests/Sentry.OpenTelemetry.Tests.csproj
index c5d402cc2e..9b19adceeb 100644
--- a/test/Sentry.OpenTelemetry.Tests/Sentry.OpenTelemetry.Tests.csproj
+++ b/test/Sentry.OpenTelemetry.Tests/Sentry.OpenTelemetry.Tests.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/test/Sentry.Serilog.Tests/Sentry.Serilog.Tests.csproj b/test/Sentry.Serilog.Tests/Sentry.Serilog.Tests.csproj
index 5bf555ed06..91732deb56 100644
--- a/test/Sentry.Serilog.Tests/Sentry.Serilog.Tests.csproj
+++ b/test/Sentry.Serilog.Tests/Sentry.Serilog.Tests.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/test/Sentry.SourceGenerators.Tests/Sentry.SourceGenerators.Tests.csproj b/test/Sentry.SourceGenerators.Tests/Sentry.SourceGenerators.Tests.csproj
index 820c77dd05..756726c781 100644
--- a/test/Sentry.SourceGenerators.Tests/Sentry.SourceGenerators.Tests.csproj
+++ b/test/Sentry.SourceGenerators.Tests/Sentry.SourceGenerators.Tests.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/test/Sentry.Testing/Sentry.Testing.csproj b/test/Sentry.Testing/Sentry.Testing.csproj
index 8fbe7f01f1..642d25f7f1 100644
--- a/test/Sentry.Testing/Sentry.Testing.csproj
+++ b/test/Sentry.Testing/Sentry.Testing.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/test/Sentry.Tests/Sentry.Tests.csproj b/test/Sentry.Tests/Sentry.Tests.csproj
index 3f00bc5a9f..6250840b7c 100644
--- a/test/Sentry.Tests/Sentry.Tests.csproj
+++ b/test/Sentry.Tests/Sentry.Tests.csproj
@@ -42,6 +42,6 @@
-
+