DynamicsCrm.DevKit.Analyzers
4.12.34.56
dotnet add package DynamicsCrm.DevKit.Analyzers --version 4.12.34.56
NuGet\Install-Package DynamicsCrm.DevKit.Analyzers -Version 4.12.34.56
<PackageReference Include="DynamicsCrm.DevKit.Analyzers" Version="4.12.34.56" />
<PackageVersion Include="DynamicsCrm.DevKit.Analyzers" Version="4.12.34.56" />
<PackageReference Include="DynamicsCrm.DevKit.Analyzers" />
paket add DynamicsCrm.DevKit.Analyzers --version 4.12.34.56
#r "nuget: DynamicsCrm.DevKit.Analyzers, 4.12.34.56"
#:package DynamicsCrm.DevKit.Analyzers@4.12.34.56
#addin nuget:?package=DynamicsCrm.DevKit.Analyzers&version=4.12.34.56
#tool nuget:?package=DynamicsCrm.DevKit.Analyzers&version=4.12.34.56
____ _ ____ ____ _ ___ _ _ _
| _ \ _ _ _ __ __ _ _ __ ___ (_) ___ ___ / ___|_ __ _ __ ___ | _ \ _____ _| |/ (_) |_ / \ _ __ __ _| |_ _ _______ _ __ ___
| | | | | | | '_ \ / _` | '_ ` _ \| |/ __/ __| | | '__| '_ ` _ \ | | | |/ _ \ \ / / ' /| | __| / _ \ | '_ \ / _` | | | | |_ / _ \ '__/ __|
| |_| | |_| | | | | (_| | | | | | | | (__\__ \ |___| | | | | | | |_| |_| | __/\ V /| . \| | |_ _ / ___ \| | | | (_| | | |_| |/ / __/ | \__ \
|____/ \__, |_| |_|\__,_|_| |_| |_|_|\___|___/\____|_| |_| |_| |_(_)____/ \___| \_/ |_|\_\_|\__(_)_/ \_\_| |_|\__,_|_|\__, /___\___|_| |___/
|___/ https://github.com/phuocle/Dynamics-Crm-DevKit 4.12.34.56 Build: 30.06.2026 23:59:59|___/
🛡️ DynamicsCrm.DevKit Analyzers
DynamicsCrm.DevKit Analyzers is a Roslyn analyzer package for Dataverse, Dynamics 365, and Power Platform server-side code. It adds compile-time diagnostics for common plugin, workflow, data provider, HTTP, metadata, and sandbox risks before they become runtime failures.
✨ Highlights
- 21 Dataverse-specific diagnostics,
DEVKIT1001throughDEVKIT1021. - Targets analyzer delivery through
netstandard2.0for broad Visual Studio and MSBuild compatibility. - Rule help links resolve to the project Wiki using the diagnostic ID.
- Covers filtering attributes, plugin images, deprecated SDK requests, sandbox-safe execution, tracing, HTTP calls, metadata retrieval, and data provider registration.
📦 Install
Use the analyzer as a private development dependency in Dataverse projects:
<PackageReference Include="DynamicsCrm.DevKit.Analyzers" Version="*" PrivateAssets="all" />
Or install from the command line:
dotnet add package DynamicsCrm.DevKit.Analyzers
📋 Diagnostics
| Rule | Default severity | Summary |
|---|---|---|
| DEVKIT1001 | Warning / Error | Create and update messages should use explicit filtering attributes, not empty or * filters. |
| DEVKIT1002 | Warning | Avoid ColumnSet(true) and all-column retrieval patterns. |
| DEVKIT1003 | Error | Validate plugin image compatibility by message and stage. |
| DEVKIT1004 | Info | Flag deprecated SDK request usage. |
| DEVKIT1005 | Warning | Guard EntityReference access that may be null. |
| DEVKIT1006 | Warning | Avoid batch request types inside plugins and workflow activities. |
| DEVKIT1007 | Error | Keep IPlugin implementations stateless during execution. |
| DEVKIT1008 | Error | Avoid parallel execution patterns inside plugins and workflow activities. |
| DEVKIT1009 | Warning | Set KeepAlive/connection reuse behavior safely for external HTTP calls. |
| DEVKIT1010 | Warning | Set explicit timeouts for external HTTP calls. |
| DEVKIT1011 | Warning | Use InvalidPluginExecutionException for plugin and workflow errors. |
| DEVKIT1012 | Info | Use ITracingService for plugin diagnostics. |
| DEVKIT1013 | Info | Avoid high-impact registrations on Retrieve and RetrieveMultiple. |
| DEVKIT1014 | Error | Avoid AppDomain event registration in plugins. |
| DEVKIT1015 | Info | Review blocking async patterns such as .Result, .Wait(), and GetAwaiter().GetResult(). |
| DEVKIT1016 | Info | Avoid retrieving unpublished metadata unless explicitly required. |
| DEVKIT1017 | Info | Avoid console output in sandboxed plugins and workflow activities. |
| DEVKIT1018 | Error | Avoid file and IO operations blocked by the Dataverse sandbox. |
| DEVKIT1019 | Warning | Check IPluginExecutionContext.Depth to prevent recursive plugin loops. |
| DEVKIT1020 | Error | Data provider plugins must declare a valid DataSource. |
| DEVKIT1021 | Warning | Trace exception details from catch blocks with ITracingService. |
⚙️ Configuration
Adjust severity in .editorconfig when a project needs a different policy:
[*.cs]
dotnet_diagnostic.DEVKIT1001.severity = error
dotnet_diagnostic.DEVKIT1012.severity = suggestion
dotnet_diagnostic.DEVKIT1016.severity = none
Suppress a narrow block only when the exception is intentional:
#pragma warning disable DEVKIT1002
var account = service.Retrieve("account", id, new ColumnSet(true));
#pragma warning restore DEVKIT1002
🔗 Links
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.12.34.56 | 2,480 | 7/1/2026 |
| 4.0.0 | 516 | 12/31/2025 |
| 3.55.55.55 | 651 | 4/3/2025 |
| 3.45.67.89 | 254 | 3/31/2025 |
| 3.44.44.44 | 683 | 12/26/2024 |
| 3.33.33.34 | 712 | 3/28/2024 |
| 3.33.33.33 | 400 | 12/31/2023 |
| 2.13.33 | 14,492 | 9/24/2021 |
| 2.12.31 | 9,212 | 7/7/2021 |
| 2.10.31 | 10,408 | 10/31/2020 |
| 2.2.29 | 823 | 3/1/2020 |
| 2.1.1 | 2,139 | 11/14/2019 |
| 2.1.0 | 947 | 9/30/2019 |
| 2.0.0 | 920 | 7/31/2019 |
Version 4.12.34.56:
- 21 diagnostic rules covering plugin best practices
- DEVKIT1001-DEVKIT1021 analyzers for common Dynamics 365 pitfalls
- Support for filtering attributes, ColumnSet validation, image validation
- Detection of deprecated SDK messages, parallel execution, and file I/O operations
- Recommendations for ITracingService usage and context.Depth checks
- DEVKIT1021: Use ITracingService in catch blocks