For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
预约演示登录免费开始
  • 使用 SDK
    • SDK 概述
    • SDK 如何工作
    • Quickstart
    • Customer showcase
  • 使用 SDK
    • 项目结构
    • 添加自定义代码
    • Migrating to Replay
    • 功能特性
  • 参考
      • Generating an SDK
      • 发布到 NuGet
      • Configuration
      • 添加自定义代码 (.NET)
      • .NET 兼容性
      • 变更日志
      • Customer showcase
  • 资源
    • generators.yml
Checking status...
SOC2Soc 2 Type II
© 2026 Fern • Birch Solutions, Inc., a Postman company

Documentation

SDKsDocsAsk FernCLI Reference

API Definitions

OpenAPIAsyncAPIOpenRPCgRPC

Resources

BlogSupportPricing

Company

Brand KitPrivacy PolicyTerms of Service
LogoLogo
预约演示登录免费开始
在本页
  • 支持的框架
  • 在 Unity 中使用 SDK
  • 项目配置示例
  • 故障排除
参考.NET

.NET 兼容性

||以 Markdown 格式查看|
此页面是否有帮助?
在仪表板中编辑
上一个

添加自定义代码

下一个

Changelog

Fern 生成的 .NET SDK 支持现代 .NET 版本、.NET Framework 版本和 Unity。

由于这些 SDK 使用现代 C# 特性构建,即使在针对较旧的 .NET Framework 目标时,您也需要以下条件:

  • 现代编译器(Visual Studio 2022 或 .NET SDK)
  • 相应的 .NET Framework 开发者包或引用程序集

支持的框架

Fern .NET SDK 支持所有官方支持的 .NET 版本,除了 net35。

框架目标框架标识符 (TFM)
.NET 9net9.0
.NET 8net8.0
.NET Framework 4.8.1net481
.NET Framework 4.8net48
.NET Framework 4.7.2net472
.NET Framework 4.7.1net471
.NET Framework 4.7net47
.NET Framework 4.6.2net462

C# 语言版本由您的编译器决定,而目标框架决定可用的运行时和基类库 API。Fern SDK 使用现代 C# 特性,但编译为较旧的框架版本。

IDE 兼容性

所有主要 IDE 在针对 net462、net472 和 net48 版本时都支持 Fern 生成的 SDK:

  • Visual Studio 2022(推荐)- 开箱即用。在项目中设置 <LangVersion> 并安装相应的开发者包。
  • Visual Studio 2019 - 原生支持 C# 9。对于更新的 C# 版本,添加 Microsoft.Net.Compilers.Toolset 包。
  • Rider - 使用 Roslyn。设置 <LangVersion> 并确保引用程序集可用。
  • VS Code - 通过 OmniSharp 和 .NET SDK 构建工作。
  • Unity - 使用 Unity 自己的 C# 编译器。请参阅在 Unity 中使用 SDK。

您可以通过 Microsoft.Net.Compilers.Toolset 包在任何环境中”自带编译器”。

编译器兼容性

使用 Visual Studio 2022+ 或 .NET SDK 附带的 Roslyn 编译器(csc)。通过 <LangVersion> 设置您的 C# 版本为 latest、preview 或特定版本(最低 9)。

Fern 的 .NET SDK 不支持传统的 Mono 编译器(mcs、gmcs)或 Roslyn 之前的 csc.exe 编译器。即使在 Mono 上构建也请使用 Roslyn。

在 Mono 上构建

使用 .NET SDK(dotnet)与 Microsoft.NETFramework.ReferenceAssemblies 包在非 Windows 系统上提供 net48 引用。通过 dotnet build 或 Mono 的 MSBuild 使用 Roslyn。

macOS/Linux
$dotnet build -c Release
开发者包
  • .NET Framework 4.6.2 开发者包
  • .NET Framework 4.7.2 开发者包
  • .NET Framework 4.8 开发者包

在 Unity 中使用 SDK

Unity 控制自己的 C# 编译器和 .NET 配置文件,这会影响您如何使用 Fern 的 .NET SDK。

C# 语言版本

Unity 使用 Roslyn 编译项目,通常支持 C# 9(因 Unity 版本而异)。您无法通过更改包来强制 Unity 使用更新的 C# 编译器,因为 Unity 在编辑器内部控制编译器。

API 兼容性级别

在 Unity 中配置:Edit → Project Settings → Player → Other Settings → Api Compatibility Level

  • .NET Standard 2.1(推荐用于跨平台插件)
  • .NET Framework 4.x(Unity 的”4.x 等效”配置文件)
必需的程序集

Unity 不支持 NuGet 包,因此您必须手动下载这些程序集并将其添加到您的 Unity 项目:

程序集NuGet 包
Microsoft.Bcl.AsyncInterfaces10.0.0-preview.6.25358.103
OneOf3.0.271
OneOf.Extended3.0.271
System.Buffers4.6.1
System.IO.Pipelines10.0.0-preview.6.25358.103
System.Memory4.6.3
System.Runtime.CompilerServices.Unsafe6.1.2
System.Text.Encodings.Web10.0.0-preview.6.25358.103
System.Text.Json10.0.0-preview.6.25358.103
System.Threading.Tasks.Extensions4.6.3
portable.system.datetimeonly9.0.0

项目配置示例

尽可能使用 SDK 样式项目,因为它们提供现代编译器和更简单的多目标支持。如果您有经典项目格式,请考虑转换为 SDK 样式。传统项目部分涵盖了无法转换的传统设置。

在 macOS/Linux 上构建

在 macOS/Linux 上为 net48 构建时,您不会有 Windows 目标包。添加引用程序集包:

YourProject.csproj
1<ItemGroup>
2 <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
3</ItemGroup>

这提供了 net48 引用程序集,以便 Roslyn 可以在任何平台上为 net48 编译。您仍然需要 Mono 或 Wine 来执行结果。

SDK 样式项目(推荐)

使用现代 C# 针对 net48

1

配置您的项目

前提条件(Windows)

安装 .NET Framework 4.8 开发者包,以便编译器可以使用 net48 引用程序集。

YourProject.csproj
1<Project Sdk="Microsoft.NET.Sdk">
2 <PropertyGroup>
3 <!-- 目标 .NET Framework 4.8 -->
4 <TargetFramework>net48</TargetFramework>
5
6 <!-- 使用现代 C# 版本 -->
7 <LangVersion>latest</LangVersion>
8
9 <!-- 可选,但推荐用于更好的警告 -->
10 <Nullable>enable</Nullable>
11 </PropertyGroup>
12</Project>
2

构建您的项目

$dotnet build -c Release
3

多目标(可选)

要支持多个框架,使用 <TargetFrameworks>:

YourProject.csproj
1<TargetFrameworks>net48;net8.0</TargetFrameworks>
传统项目

对于较旧的 MSBuild/Visual Studio 版本、Visual Studio 2019 或传统的 packages.config 设置,添加现代 Roslyn 工具集并针对旧框架。

1

安装目标包

安装相应的 .NET Framework 开发者包,以便 Visual Studio 可以找到引用程序集。

2

设置语言版本

YourProject.csproj
1<PropertyGroup>
2<!-- 解锁现代 C# -->
3<LangVersion>latest</LangVersion>
4</PropertyGroup>

或使用特定版本:9、10、11、12 或 preview。

3

添加现代编译器

YourProject.csproj
1 <ItemGroup>
2 <PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="x.y.z">
3 <!-- 保持私有: -->
4 <PrivateAssets>all</PrivateAssets>
5 </PackageReference>
6 </ItemGroup>

这确保您的构建使用现代的 csc.exe,即使您的 IDE/MSBuild 较旧。

故障排除

找不到类型或命名空间 IsExternalInit

在您的项目中添加一个小垫片或引用一个辅助包。

找不到 .NETFramework,Version=v4.8 的引用程序集
  • Windows:安装 .NET Framework 4.8 开发者包。
  • 跨平台/CI:将 Microsoft.NETFramework.ReferenceAssemblies 添加到项目中(作为 PrivateAssets=all)。
VS 2019 无法解析较新的语法

将 Microsoft.Net.Compilers.Toolset 添加到项目中,或迁移到 VS 2022+。

CS0619:不支持具有必需成员的类型的构造函数

这个错误发生在较旧的 Visual Studio 版本中使用 required 关键字时。请按照传统项目的说明添加现代编译器。

某些版本的 Visual Studio 可能在 IDE 中显示此错误,但在使用包提供的编译器时成功编译项目。