Microsoft.Teams.M365Extensions 2.1.1

Prefix Reserved
dotnet add package Microsoft.Teams.M365Extensions --version 2.1.1
                    
NuGet\Install-Package Microsoft.Teams.M365Extensions -Version 2.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Microsoft.Teams.M365Extensions" Version="2.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Microsoft.Teams.M365Extensions" Version="2.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Microsoft.Teams.M365Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Microsoft.Teams.M365Extensions --version 2.1.1
                    
#r "nuget: Microsoft.Teams.M365Extensions, 2.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Microsoft.Teams.M365Extensions@2.1.1
                    
#:package 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.
#addin nuget:?package=Microsoft.Teams.M365Extensions&version=2.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Microsoft.Teams.M365Extensions&version=2.1.1
                    
Install as a Cake Tool

Microsoft.Teams.M365Extensions

Bridge the Microsoft 365 Agents SDK and the Microsoft Teams SDK in a single ASP.NET Core app.

Teams-channel turns are routed to a TeamsBotApplication (Teams SDK) when a Teams route matches; everything else — non-Teams channels and unmatched Teams turns — continues through the Agents SDK pipeline. Outbound Teams API calls are authenticated with the Agents SDK's connection manager, so no separate AzureAd configuration section is required.

Install

<PackageReference Include="Microsoft.Teams.M365Extensions" Version="*" />

Usage

A single call wires everything up:

using Microsoft.Teams.M365Extensions;

builder.AddAgent<MyAgent>();
builder.Services.AddTeamsSdk<MyTeamsBot>();

Optionally bypass Teams routing for specific activities so they stay on the Agents SDK (for example, to keep signin/* invokes on the Agents SDK auth pipeline):

builder.Services.AddTeamsSdk<MyTeamsBot>(shouldBypassTeams: turnContext =>
    turnContext.Activity.Type == ActivityTypes.Invoke
    && !string.IsNullOrEmpty(turnContext.Activity.Name)
    && turnContext.Activity.Name.StartsWith("signin/", StringComparison.OrdinalIgnoreCase));

AddTeamsSdk<T>() registers the Teams SDK bot and its Teams API/auth chain, bridges outbound auth through the Agents SDK connection manager, and installs TeamsSdkMiddleware on the CloudAdapter pipeline. Matched Teams turns are replayed through TeamsBotApplication.ProcessAsync(...) on a synthetic HttpContext built from the current Agents SDK turn, so Teams message turns still work when the CloudAdapter processes them on a background thread.

Key types

Type Purpose
TeamsSdkExtensions.AddTeamsSdk<T> One-call registration of the Teams SDK bot and routing middleware.
TeamsSdkMiddleware Agents SDK IMiddleware that routes matched Teams turns to the Teams SDK.
TeamsSdkMiddleware.IsTeamsChannel Detects Teams channels, including sub-channels such as msteams:COPILOT.

See the M365ExtensionsBot sample for an end-to-end multichannel app.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
2.1.1 39 9/22/2026