diff --git a/.gitignore b/.gitignore
index afc6e2c8..8a34040d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@ website/
# exclude security scanning results.
results.sarif
+Elskom.Sdk/Sdk.props
diff --git a/Elskom.Sdk/Elskom.Sdk.DefaultItems.targets b/Elskom.Sdk/Elskom.Sdk.DefaultItems.targets
new file mode 100644
index 00000000..3f6971fc
--- /dev/null
+++ b/Elskom.Sdk/Elskom.Sdk.DefaultItems.targets
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Elskom.Sdk/Elskom.Sdk.csproj b/Elskom.Sdk/Elskom.Sdk.csproj
new file mode 100644
index 00000000..d3d2e2d9
--- /dev/null
+++ b/Elskom.Sdk/Elskom.Sdk.csproj
@@ -0,0 +1,34 @@
+
+
+
+ false
+ true
+ GitBuildInformation;SettingsFile;zlib;BlowFish;Unluac;ZipAssembly;ReleasePackaging;MessageManager;GenericPluginLoader;MiniDump;PluginFramework;PluginUpdateCheck;GitBuildInfo
+ Elskom SDK for development of Els_kom plugins and for Els_kom itself. Also contains libs that can be used for other projects as well.
+ Fixed issue where SDK might not add a known framework reference for projects that target the .NET 7 runtime.
+ $(NoWarn);NU1507
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Elskom.Sdk/Sdk.props.in b/Elskom.Sdk/Sdk.props.in
new file mode 100644
index 00000000..5dad16a5
--- /dev/null
+++ b/Elskom.Sdk/Sdk.props.in
@@ -0,0 +1,98 @@
+
+
+
+ true
+
+
+
+
+
+ preview
+ true
+ true
+ preview
+ AllEnabledByDefault
+
+ true
+ @SDK_VERSION@
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+ all
+
+
+
+ all
+
+
+
+
+
+
+
+ all
+
+
+
+
diff --git a/Elskom.Sdk/Sdk.targets b/Elskom.Sdk/Sdk.targets
new file mode 100644
index 00000000..48c10d50
--- /dev/null
+++ b/Elskom.Sdk/Sdk.targets
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 077bbab0..bc0adee5 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@ Runtime for the Elskom .NET SDK workload.
| Package | Version |
|:-------:|:-------:|
+| Elskom.Sdk | [![NuGet Badge](https://buildstats.info/nuget/Elskom.Sdk?includePreReleases=true)](https://www.nuget.org/packages/Elskom.Sdk/)
| Elskom.Sdk.App.Runtime.win-x86 | [![NuGet Badge](https://buildstats.info/nuget/Elskom.Sdk.App.Runtime.win-x86?includePreReleases=true)](https://www.nuget.org/packages/Elskom.Sdk.App.Runtime.win-x86/) |
| Elskom.Sdk.App.Runtime.win-x64 | [![NuGet Badge](https://buildstats.info/nuget/Elskom.Sdk.App.Runtime.win-x64?includePreReleases=true)](https://www.nuget.org/packages/Elskom.Sdk.App.Runtime.win-x64/) |
| Elskom.Sdk.App.Runtime.win-arm64 | [![NuGet Badge](https://buildstats.info/nuget/Elskom.Sdk.App.Runtime.win-arm64?includePreReleases=true)](https://www.nuget.org/packages/Elskom.Sdk.App.Runtime.win-arm64/) |
diff --git a/eng/Versions.props b/eng/Versions.props
index e8f6f81a..23eda40c 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -2,7 +2,7 @@
- 8
+ 9
0
0
$(MajorVersion).$(MinorVersion).$(PatchVersion)
diff --git a/pkg/bundle/Elskom.Sdk.App.Bundle.bundleproj b/pkg/bundle/Elskom.Sdk.App.Bundle.bundleproj
index dfefc400..e008e3e4 100644
--- a/pkg/bundle/Elskom.Sdk.App.Bundle.bundleproj
+++ b/pkg/bundle/Elskom.Sdk.App.Bundle.bundleproj
@@ -35,6 +35,7 @@
all
+
RuntimeIdentifier=$(RuntimeIdentifier)
@@ -46,6 +47,7 @@
+
diff --git a/runtime.sln b/runtime.sln
index d5f79ce2..cf312330 100644
--- a/runtime.sln
+++ b/runtime.sln
@@ -60,6 +60,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "installer", "installer", "{
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "installers", "pkg\installer\installers.csproj", "{B9065E22-3A4C-4A38-BD46-330CD60F094F}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sdk", "Sdk", "{5212A248-77A1-49A4-9E86-0FAADEAE6042}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elskom.Sdk", "Elskom.Sdk\Elskom.Sdk.csproj", "{1C37BC41-D636-44EC-8603-ADB356BC7B3F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -166,6 +170,10 @@ Global
{B9065E22-3A4C-4A38-BD46-330CD60F094F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9065E22-3A4C-4A38-BD46-330CD60F094F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9065E22-3A4C-4A38-BD46-330CD60F094F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1C37BC41-D636-44EC-8603-ADB356BC7B3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1C37BC41-D636-44EC-8603-ADB356BC7B3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1C37BC41-D636-44EC-8603-ADB356BC7B3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1C37BC41-D636-44EC-8603-ADB356BC7B3F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -197,6 +205,7 @@ Global
{2D1878AD-8A11-4F56-9E3A-58ABDAAEA292} = {E5605BA8-4F46-4B1F-AB27-C5DA07FED9C5}
{611B9497-B82A-4C65-91E7-7C54F1E52CF4} = {20C33D3B-3412-40EB-8284-C4979AD2F390}
{B9065E22-3A4C-4A38-BD46-330CD60F094F} = {611B9497-B82A-4C65-91E7-7C54F1E52CF4}
+ {1C37BC41-D636-44EC-8603-ADB356BC7B3F} = {5212A248-77A1-49A4-9E86-0FAADEAE6042}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AE022F12-D088-439B-8AD2-EAAF2FE7C6C0}