TALXIS.DevKit.Build.Dataverse.Plugin
1.7.0
Prefix Reserved
dotnet add package TALXIS.DevKit.Build.Dataverse.Plugin --version 1.7.0
NuGet\Install-Package TALXIS.DevKit.Build.Dataverse.Plugin -Version 1.7.0
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Plugin" Version="1.7.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="TALXIS.DevKit.Build.Dataverse.Plugin" Version="1.7.0" />
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Plugin"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add TALXIS.DevKit.Build.Dataverse.Plugin --version 1.7.0
#r "nuget: TALXIS.DevKit.Build.Dataverse.Plugin, 1.7.0"
#:package TALXIS.DevKit.Build.Dataverse.Plugin@1.7.0
#addin nuget:?package=TALXIS.DevKit.Build.Dataverse.Plugin&version=1.7.0
#tool nuget:?package=TALXIS.DevKit.Build.Dataverse.Plugin&version=1.7.0
TALXIS.DevKit.Build.Dataverse.Plugin
MSBuild integration for Dataverse plugin assembly projects. Configures Visual Studio project type GUIDs for CRM plugin development, brings in Microsoft.CrmSdk.CoreAssemblies and Microsoft.PowerApps.MSBuild.Plugin, applies automatic Git-based versioning, merges referenced managed dependencies into the output DLL via ILRepack so the Dataverse sandbox can load all required types from a single assembly, and exposes metadata targets that allow Solution projects to discover and integrate plugin assemblies during build.
Installation
<PackageReference Include="TALXIS.DevKit.Build.Dataverse.Plugin" Version="0.0.0.1" PrivateAssets="All" />
Or use the SDK approach:
<Project Sdk="TALXIS.DevKit.Build.Sdk/0.0.0.1">
<PropertyGroup>
<ProjectType>Plugin</ProjectType>
</PropertyGroup>
</Project>
How It Works
The package sets ProjectType to Plugin and configures ProjectTypeGuids for CRM plugin recognition in Visual Studio.
Build-time targets
- _ApplyPluginVersionBeforeBuild (runs before
BeforeBuild) -- executesGenerateVersionNumberfollowed byApplyPluginVersionNumberto setAssemblyVersion,FileVersion,Version, andPackageVersionfrom Git. - AssemblyMergeDependencies (runs after
Build) -- uses ILRepack to merge every managed DLL that landed in$(OutDir)into the main plugin assembly, so the Dataverse sandbox (which loads a single assembly) can resolve all referenced types without sibling DLLs. By default, sandbox-provided assemblies are skipped:Microsoft.Xrm.Sdk*,Microsoft.Crm.Sdk.Proxy,Newtonsoft.Json,System.*,mscorlib,netstandard(configurable via$(AssemblyMergeExcludes)). Idempotent — always reads the raw compiler output from$(IntermediateOutputPath)so the target can safely re-run within the same Solution build. Merged types keep their original public names (Internalize=false) to preserve Dataverse's reflection-based plugin type detection. Disable per-project with<AssemblyMergeSkip>true</AssemblyMergeSkip>.
Integration targets
These targets are called by TALXIS.DevKit.Build.Dataverse.Solution when it discovers this project via ProjectReference:
- GetProjectType -- returns
Pluginso the Solution build knows how to handle this reference. - GetPluginAssemblyInfo -- returns
PluginRootPath,PluginAssemblyId,TargetFramework,PublishFolderName, andAssemblyNamefor automatic plugin assembly metadata generation in the solution.
MSBuild Properties
| Property | Default | Description |
|---|---|---|
ProjectType |
Plugin |
Marks the project as a plugin for reference discovery. |
Version |
(required) | Base version; major/minor are used for Git versioning. |
GitVersionNumberBranchPrefixes |
(none) | Optional <branch>:<prefix> map for build ordering (e.g. develop:1;feature/*:3). Prefix 2 is reserved for local builds. |
LocalBuildVersionNumber |
0.0.20000.0 |
Version used for local / non-CI builds. |
PluginTargetFramework |
$(TargetFramework) or net462 |
Target framework used to locate the compiled plugin DLL. |
PluginPublishFolderName |
publish |
Publish folder name under bin\<Configuration>\<TFM>\. |
PluginAssemblyId |
(auto-generated) | Explicit GUID for the plugin assembly metadata; a new GUID is generated if empty. |
AssemblyMergeSkip |
(unset) | When true, skips the post-build AssemblyMergeDependencies ILRepack step. |
AssemblyMergeExcludes |
mscorlib;netstandard;Newtonsoft.Json;Microsoft.Xrm.Sdk;Microsoft.Crm.Sdk.Proxy |
Semicolon-separated assembly filenames (without .dll) to exclude from merging. Prefix patterns Microsoft.Xrm.Sdk.* and System.* are always excluded. |
Related Packages
- Depends on:
TALXIS.DevKit.Build.Dataverse.Tasks,Microsoft.PowerApps.MSBuild.Plugin,Microsoft.CrmSdk.CoreAssemblies,ILRepack.Lib.MSBuild.Task - Consumed by:
TALXIS.DevKit.Build.Dataverse.Solutionprojects viaProjectReference
Learn more about Target Frameworks and .NET Standard.
-
- ILRepack.Lib.MSBuild.Task (= 2.0.44.2)
- Microsoft.CrmSdk.CoreAssemblies (= 9.0.2.60)
- Microsoft.NETFramework.ReferenceAssemblies (= 1.0.3)
- Microsoft.PowerApps.MSBuild.Plugin (>= 1.48.2)
- TALXIS.DevKit.Build.Dataverse.Tasks (>= 1.7.0)
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 |
|---|---|---|
| 1.7.0 | 41 | 7/7/2026 |
| 1.6.1 | 264 | 6/29/2026 |
| 1.6.0 | 110 | 6/27/2026 |
| 1.5.1 | 153 | 5/26/2026 |
| 1.5.0 | 428 | 5/26/2026 |
| 1.4.0 | 393 | 5/14/2026 |
| 1.3.0 | 162 | 5/14/2026 |
| 1.2.2 | 265 | 5/4/2026 |
| 1.2.1 | 166 | 5/4/2026 |
| 1.2.0 | 184 | 5/4/2026 |
| 1.1.0 | 174 | 5/1/2026 |
| 1.0.0 | 184 | 4/29/2026 |
| 0.0.0.16 | 190 | 4/28/2026 |
| 0.0.0.15 | 203 | 4/26/2026 |
| 0.0.0.14 | 194 | 4/25/2026 |
| 0.0.0.13 | 355 | 3/13/2026 |
| 0.0.0.12 | 275 | 3/11/2026 |
| 0.0.0.11 | 256 | 3/6/2026 |
| 0.0.0.10 | 251 | 2/24/2026 |
| 0.0.0.9 | 301 | 2/12/2026 |