AlbanianXrm.CDSProj.Sdk 1.0.15

<Sdk Name="AlbanianXrm.CDSProj.Sdk" Version="1.0.15" />
                    
For projects that support Sdk, copy this XML node into the project file to reference the package.
#:sdk AlbanianXrm.CDSProj.Sdk@1.0.15
                    
#:sdk directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.

AlbanianXrm.CDSProj.Sdk

A visual studio sdk project based on the Microsoft provided .cdsproj project with support for Plugin Package dependencies. This project can be part of a Visual Studio solution and can be opened on visual studio

To use this just reference the Sdk using a specific version and the build system should get the definition from NuGet.

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="AlbanianXrm.CDSProj.Sdk/1.0.15">
</Project>

After your project references our SDK then you can add it as part of your visual studio solution with the dotnet sln YourSolution.sln add "path to your .cdsproj file"

Reference your plugin packages and PCFs normally using ProjectReference tags.

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="AlbanianXrm.CDSProj.Sdk/1.0.15">
	<ItemGroup>
		<ProjectReference Include="..\AlbanianXrm.OtherPluginPackage\AlbanianXrm.OtherPluginPackage.csproj" />
		<ProjectReference Include="..\AlbanianXrm.PluginPackage\AlbanianXrm.PluginPackage.csproj" />
		<ProjectReference Include="..\AlbanianXrm.YetAnotherPluginPackage\AlbanianXrm.YetAnotherPluginPackage.csproj">
			<ManagedIdentityId>50d2aee4-08c4-4f5d-bb9b-9ce93923da42</ManagedIdentityId>
		</ProjectReference>
		<ProjectReference Include="..\AlbanianXrm.LinearInputPCF\AlbanianXrm.LinearInputPCF.pcfproj" />
	</ItemGroup>
</Project>

Versioning Behavior

By default, the SDK reads the version from src/Other/Solution.xml and uses that value for both the solution version and plugin package version updates.

You can override this behavior in two ways:

  1. Pass FileVersion during build.
  2. Enable Git-based versioning through Nerdbank.GitVersioning.

When both are used, FileVersion wins.

Enable Git Versioning

To use Nerdbank.GitVersioning for solution/plugin package version stamping, set EnableGitVersioning and reference the package:

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="AlbanianXrm.CDSProj.Sdk/1.0.15">
	<PropertyGroup>
		<EnableGitVersioning>true</EnableGitVersioning>
	</PropertyGroup>
	<ItemGroup Condition="'$(EnableGitVersioning)' == 'true'">
		<PackageReference Include="Nerdbank.GitVersioning" Version="3.8.118" PrivateAssets="all" />
	</ItemGroup>
</Project>

Version resolution order during build:

  1. FileVersion property (if provided).
  2. Nerdbank.GitVersioning (GetBuildVersion) when EnableGitVersioning=true.
  3. src/Other/Solution.xml fallback.

The version of the packaged solution and plugins follows the precedence above and falls back to src/Other/Solution.xml when neither FileVersion nor Git versioning is available.

Managed Identities

If you want to use Managed Identities then specify the ManagedIdentityId property in your plugin package project or in the ProjectReference. There is a target that makes sure that the pluginpackage.xml is properly regenerated on build.

There are no supported framework assets in this package.

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
1.0.15 168 8/13/2026
1.0.14 162 8/12/2026
1.0.13 263 6/9/2026
1.0.12 261 6/2/2026
1.0.11 524 5/24/2026
1.0.10 276 5/20/2026
1.0.9 2,949 11/26/2025
1.0.8 577 11/5/2025
1.0.7 568 10/30/2025
1.0.6 572 10/29/2025
1.0.5 703 10/20/2025
1.0.4 612 10/13/2025
1.0.3 577 10/13/2025
1.0.2 582 9/23/2025
1.0.1 636 9/14/2025
1.0.0 520 9/13/2025

v1.0.15:
-  - Enabled AccelerateBuildsInVisualStudio and did some minor related improvements.

v1.0.14:
- removed Microsoft.Build.NoTargets/3.7.56 dependency. Now applying the same logic using our fork so that we are in control.

v1.0.13:
- Added default project type which enables .cdsproj to be added using the following command `dotnet sln mySolution.sln add ...`

v1.0.12:
- Added support for Directory.props global package versioning

v1.0.11:
- Added support for Nerdbank.GitVersioning
- thanks Reza Niroomand (Microsoft MVP, @rezanid) for issuing a PR with the new feature.

v1.0.10:
- Solution Version is shown when packing solution.
- Avoids appending Publisher Prefix to already prefixed Plugin Package
- thanks Reza Niroomand (Microsoft MVP, @rezanid) for finding these issues and issuing a PR with the fixes.

v1.0.9:
- Fixed bug with plugin package not getting the right version sometimes (ex. 1.0.1.0 would throw).
- AppendTargetFrameworkToOutputPath set to false by default to preserve paths same as MS Package.

v1.0.8:
- Fixed bug incorrectly generating pluginpackage.xml file when no plugin packages are referenced.

v1.0.7:
- Improved support for ManagedIdentities in Plugins

v1.0.6:
- Added support for ManagedIdentity in plugins

v1.0.5:
-  Regenerate pluginpackage.xml when packing plugin packages.

This might get deleted by doing pac solution sync

v1.0.4:
- correctly excluding _SetFileVersionOnSolution to prevent unintentional file update

v1.0.3:
- Updates solution version when FileVersion property is specified on build

v1.0.2:
- Fixed bug with cds projects that don't reference a plugin package project

v1.0.1:
- Improved packages documentation and icon

v1.0.0:
- First release of AlbanianXrm.CDSProj.SDK