针对 P/Invoke 源生成的 SYSLIB 诊断
下表显示 .NET 7 及更高版本中平台调用 (P/Invoke) 源生成分析器的诊断 ID。 SYSLIB1054
自动提醒你在编译时可以使用源生成来生成 P/Invoke 封送代码的位置。 其余诊断提醒你与使用源生成器相关的错误。
诊断 ID | 标题 | 说明 |
---|---|---|
SYSLIB1050 |
LibraryImportAttribute 用法无效。 | - 使用“LibraryImportAttribute”标记时,方法“{0}”应为“static”、“partial”和非泛型。 P/Invoke 源生成将忽略方法“{0}”。 - 方法“{0}”包含在未标记为“partial”的类型“{1}”中。 P/Invoke 源生成将忽略方法“{0}”。 - 方法“{0}”上的“StringMarshalling”和“StringMarshallingCustomType”的配置无效。 |
SYSLIB1051 |
源生成的 P/Invoke 不支持指定的类型。 | - 生成的源不会处理参数“{1}”的封送处理。 - 生成的源不会处理方法“{1}”的返回值的封送处理。 |
SYSLIB1052 |
源生成的 P/Invoke 不支持指定的配置。 | - 源生成的 P/Invoke 不支持配置。 如果需要指定的配置,请改用常规 DllImport 。- 源生成的 P/Invokes 不支持参数“{1}”的指定配置。 - 源生成的 P/Invokes 不支持方法“{1}”的返回值的指定配置。 - 源生成的 P/Invoke 不支持“{1}”指定的值。 - 源生成的 P/Invoke 不支持指定的封送配置。 |
SYSLIB1053 |
指定的 LibraryImportAttribute 参数不能转发到 DllImportAttribute。 | “{0}”在“DllImportAttribute”中没有等效项,不会转发。 |
SYSLIB1054 |
使用 LibraryImportAttribute 而不是 DllImportAttribute 在编译时生成 P/Invoke 封送代码。 | |
SYSLIB1055 |
CustomMarshallerAttribute 用法无效。 | |
SYSLIB1056 |
指定的本机类型无效。 | |
SYSLIB1057 |
封送程序类型没有必需的形状。 | |
SYSLIB1058 |
NativeMarshallingAttribute 用法无效。 | |
SYSLIB1059 |
封送程序类型不支持分配构造函数。 | |
SYSLIB1060 |
指定的封送程序类型无效。 | |
SYSLIB1061 |
封送程序类型具有不兼容的方法签名。 | |
SYSLIB1062 |
必须使用 <AllowUnsafeBlocks>true</AllowUnsafeBlocks> 更新项目。 |
有关源生成的 P/Invoke 详细信息,请参阅平台调用的源生成和教程:在源生成的 P/Invoke 中使用自定义封送程序。