提问人:IamIC 提问时间:7/14/2023 最后编辑:IamIC 更新时间:7/14/2023 访问量:102
LibraryImportAttribute 错误地声明使用扩展方法并阻止编译
LibraryImportAttribute incorrectly stating use of extension method and preventing compilation
问:
我正在使用今天更新的 .NET 8 预览版 6 和 Visual Studio 2022。
我今天更新了一个库,从 更改为 ,但它表示 .DllImport
LibraryImport
CS0755
这是我导入的方法声明:
public unsafe static partial class CppCoreFuncs
{
#region private
[LibraryImport(DLL, EntryPoint = "Poly2Cofs_multi_buf"), SuppressUnmanagedCodeSecurity]
private static partial FuncResult Poly2CofsMultiBuf(void* buffer, InputMode mode);
#endrgion
...
}
这将生成以下代码:
public unsafe static partial class CppCoreFuncs
{
[System.Runtime.InteropServices.DllImportAttribute("CPP Core.dll", EntryPoint = "Poly2Cofs_multi_buf", ExactSpelling = true)]
private static extern partial global::RWT.ROCT.Core.Public.FuncResult Poly2CofsMultiBuf(void* buffer, global::RWT.ROCT.Core.Public.InputMode mode);
}
当我编译时,我得到这个:
错误 CS0755 两个部分方法声明都必须是扩展 方法或两者都可能不是扩展方法...... 核心\Microsoft.Interop.LibraryImportGenerator\Microsoft.Interop.LibraryImportGenerator\LibraryImports.g.cs
文档:平台调用的源生成。
没有扩展方法。如果我改回,那么下一个方法导入声明会得到这个错误。它只出现一次。DLLImport
LibraryImport
编辑
作为参考,这里有一个工作代码生成器生成的存根:GeneratedRegexAttribute
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Text.RegularExpressions.Generator", "8.0.8.32907")]
internal static partial global::System.Text.RegularExpressions.Regex QuotedOrUnquotedNewLineRx() => global::System.Text.RegularExpressions.Generated.QuotedOrUnquotedNewLineRx_7.Instance;
答: 暂无答案
评论
DLLImportAttribute
是编译器生成的。顶部代码是我的,底部来自代码生成器。