BroadcastPluginSDK 1.0.10-alpha.0.30
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
<PackageReference Include="BroadcastPluginSDK" Version="1.0.10-alpha.0.30" />
<PackageVersion Include="BroadcastPluginSDK" Version="1.0.10-alpha.0.30" />
<PackageReference Include="BroadcastPluginSDK" />
paket add BroadcastPluginSDK --version 1.0.10-alpha.0.30
#r "nuget: BroadcastPluginSDK, 1.0.10-alpha.0.30"
#:package BroadcastPluginSDK@1.0.10-alpha.0.30
#addin nuget:?package=BroadcastPluginSDK&version=1.0.10-alpha.0.30&prerelease
#tool nuget:?package=BroadcastPluginSDK&version=1.0.10-alpha.0.30&prerelease
Test Plugin
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 theIBroadcast
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 | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0-windows8.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows8.0
- Markdig (>= 0.41.3)
- Microsoft.Extensions.Configuration (>= 9.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.8)
- Microsoft.Extensions.Configuration.Json (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
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 |