Pixeval.Extensions.SDK 4.4.4

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

Pixeval.Extensions

本项目是Pixeval扩展功能的工具项目,被主项目(下称Pixeval)高强度依赖,所以本项目会和Pixeval同步迭代(使用相同的版本号)。

本项目通过NuGet进行分发,在NuGet上有两个包:

  • Pixeval.Extensions.Common:这个包声明了Pixeval与扩展进行通信使用的接口,和一些简单的工具类。这个包会被Pixeval和下面的SDK包引用。
  • Pixeval.Extensions.SDK:这个包对上一个包的接口进行了封装,降低了编写扩展的难度和工作量。扩展的开发者应该引用这个包。

关于向后兼容

本项目正处于早期开发阶段,不能保证向后兼容,但遇到相关问题欢迎与商讨( •̀ ω •́ )✧。

C#/.NET的extension类型对本项目帮助很大,在extension功能发布后势必要对本项目进行全方位的优化,但也会尽量保持向前兼容。

关于扩展系统使用的技术

为了方便以后将Pixeval改写为AOT项目,Pixeval的扩展系统要求加载的扩展也是AOT的,所以扩展系统选择了COM + P/Invoke的技术实现。

.NET在8.0版本才实现了完全支持AOT的COM技术,所以本项目最低支持的.NET SDK是.NET 8。

由于AOT和COM系统的局限性,项目中几乎不能使用反射技术,通信时也不能使用复杂的类型(只有接口和方法,这也是为什么需要SDK项目),但好在除此之外的其他技术并没有多少限制。

为了保持各语言扩展 API 的一致性,本项目使用 .pidl(Pixeval interface definition language)文件定义接口,并统一由 生成器 生成对应语言的接口代码和 SDK。开发者在实现扩展时只需要关注接口定义和 SDK 的使用,不需要关心底层的 COM 和 P/Invoke 细节。

开发扩展

C# 扩展案例

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 was computed.  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
5.0.0 156 7/17/2026
4.4.5 115 6/15/2026
4.4.4 112 6/10/2026
4.4.3 105 5/22/2026
4.4.2 103 5/22/2026
4.4.1 112 5/21/2026
4.4.0 149 1/12/2026
4.3.11 211 3/29/2025
4.3.9 266 3/10/2025
4.3.9-dev-4 244 3/9/2025
4.3.9-dev-3 170 2/27/2025
4.3.9-dev-2 168 2/27/2025
4.3.9-dev-1 154 2/22/2025
4.3.6 207 2/13/2025
4.3.5-dev-2 199 2/12/2025
4.3.5-dev-1 189 2/2/2025
4.3.4 164 1/13/2025
4.3.3 209 1/5/2025