BroadcastPluginSDK 1.0.10-alpha.0.30

This is a prerelease version of BroadcastPluginSDK.
This package has a SemVer 2.0.0 package version: 1.0.10-alpha.0.30+ci.
There is a newer version of this package available.
See the version list below for details.
dotnet add package BroadcastPluginSDK --version 1.0.10-alpha.0.30
                    
NuGet\Install-Package BroadcastPluginSDK -Version 1.0.10-alpha.0.30
                    
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="BroadcastPluginSDK" Version="1.0.10-alpha.0.30" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BroadcastPluginSDK" Version="1.0.10-alpha.0.30" />
                    
Directory.Packages.props
<PackageReference Include="BroadcastPluginSDK" />
                    
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 BroadcastPluginSDK --version 1.0.10-alpha.0.30
                    
#r "nuget: BroadcastPluginSDK, 1.0.10-alpha.0.30"
                    
#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 BroadcastPluginSDK@1.0.10-alpha.0.30
                    
#: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=BroadcastPluginSDK&version=1.0.10-alpha.0.30&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=BroadcastPluginSDK&version=1.0.10-alpha.0.30&prerelease
                    
Install as a Cake Tool

Test Plugin

GitHub Release 🚀 Publish NuGet Package

Creating a Plugin

Plugins are created by implementing the IBroadcast interface. This interface is defined in the PluginBase project, which is a dependency of this project. To create a plugin, you need to create a class that implements the IBroadcast interface. Here is an example of how to do this:

  • Create a new Windows Forms Control project. ensure it targets the same framework as the PluginBase project (e.g., .NET 8.0).
  • Add a reference to the PluginBase project in your new project.
  • Change the project file to include the PluginBase project as a reference, ensuring that it does not include runtime assets. This is necessary to avoid conflicts with the IBroadcast interface.
  • Set the base output directory of your plugin project to the Plugins directory of the main project. This is where the main application will look for plugins.
  • Inhert from PluginBase.PluginControl in your user control class.
using Microsoft.Extensions.Configuration;
using PluginBase;

namespace MSFSPlugin
{
    public partial class UserControl1 : PluginBase.PluginControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

    }
}

Plugin Base Project Reference

To overcome an error with typeof(IBroadcast).IsAssignableFrom(type) returning false the following entry needs to be made to your projects file.

  <ItemGroup>
    <ProjectReference Include="..\PluginBase\PluginBase.csproj">
        <Private>false</Private>
	    <ExcludeAssets>runtime</ExcludeAssets>
    </ProjectReference>
  </ItemGroup>

Publishing the Plugin

The plugin is built as a ZIP file with all the components required to run the plugin.

To do this you need to edit the project file of your plugin project and add the following properties:


    <PropertyGroup>
        ....
        .... Existing properties
        ....
        <PackageDir Condition="'$(PackageDir)' == ''">$([System.IO.Path]::Combine($(OutputPath),'package'))/</PackageDir>
	    <PackagePath> c:\plugins\API.zip</PackagePath>
    </PropertyGroup>

	<Target Name="Package" DependsOnTargets="Publish">
		<MakeDir Directories="$(PackageDir)" />
		<ZipDirectory Overwrite="true" SourceDirectory="$(MSBuildProjectDirectory)/$(PublishDir)" DestinationFile="$(PackagePath)" />
	</Target>
	<Target Name="PackageClean" AfterTargets="Clean">
		<Delete Files="$(PackagePath)" />
	</Target>

Now on your command line you can run the following command to build and package your plugin:

dotnet publish /t:Package

You can also add the configuration for example:

  dotnet publish /t:Package -c Release

Development

When changing the plugin SDK you may want to deliver the local (debug) version from a project dependancy and the (Release) version frp, the nuget package.

	<ItemGroup Condition="'$(Configuration)' == 'Debug'">
		<ProjectReference Include="..\BroadcastPluginSDK\BroadcastPluginSDK.csproj" />
	</ItemGroup>

	<ItemGroup Condition="'$(Configuration)' == 'Release'">
		<PackageReference Include="BroadcastPluginSDK" Version="1.0.4" />
	</ItemGroup>

Then it is possible to build manually or via the GUI:

dotnet build --configuration:Debug --target:Package -p:OutputDirectory=c:\Plugins\ -p:Version=0.0.3
dotnet build --configuration:Release --target:Package -p:OutputDirectory=c:\Plugins\ -p:Version=0.0.3
Product Compatible and additional computed target framework versions.
.NET net8.0-windows8.0 is compatible.  net9.0-windows 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
1.2.0 138 9/12/2025
1.1.2 172 9/1/2025
1.1.1 280 8/27/2025
1.1.0 214 8/27/2025
1.0.18 209 8/27/2025
1.0.17 199 8/25/2025
1.0.16 232 8/24/2025
1.0.10-alpha.0.33 183 8/24/2025
1.0.10-alpha.0.32 28 8/24/2025
1.0.10-alpha.0.30 23 8/23/2025
1.0.10-alpha.0.24 24 8/23/2025
1.0.10-alpha.0.21 24 8/23/2025
1.0.10-alpha.0.18 26 8/23/2025
1.0.10-alpha.0.16 24 8/23/2025
1.0.10-alpha.0.10 23 8/23/2025
1.0.10-alpha.0.9 23 8/23/2025
1.0.10-alpha.0.8 27 8/23/2025
1.0.9 146 8/23/2025
1.0.8 83 8/23/2025
1.0.7 155 8/21/2025
1.0.6 213 8/20/2025
1.0.5 150 8/15/2025
1.0.4 174 8/12/2025
1.0.3 161 8/12/2025
1.0.2 162 8/12/2025
1.0.1 186 8/11/2025
1.0.0 156 8/11/2025
0.0.2 156 8/11/2025