Неожиданная ошибка компилятора при использовании нового атрибута .NET LibraryImport.C#

Место общения программистов C#
Anonymous
Неожиданная ошибка компилятора при использовании нового атрибута .NET LibraryImport.

Сообщение Anonymous »


Я пытаюсь обновить старый код для поддержки новейших функций .NET 7, а именно LibraryImport, но у меня возникают проблемы с ошибками, которых нет у других. Все примеры, которые я могу найти, требуют, чтобы метод был одновременно статическим и частичным, но без extern он требует реализации.

#if NET7_0_OR_GREATER [LibraryImport("kernel32")] общедоступный статический частичный IntPtr LoadLibrary (строка fileName); [LibraryImport("kernel32")] общедоступный статический частичный IntPtr GetProcAddress (модуль IntPtr, строка procName); [LibraryImport("kernel32")] общедоступный статический частичный int FreeLibrary (модуль IntPtr); #еще Ошибка следующая: «Частичный метод 'IntPtr LoadLibrary(string)' должен иметь часть реализации, поскольку у него есть модификаторы доступности.» Единственное только что удаленное предложение partial и добавили общую реализацию, которая при вызове выдавала исключение.

Сначала я думал, что у меня проблемы, поскольку мой проект поддерживает несколько платформ, но ошибка сохранялась и в новом консольном приложении .NET 7. Я даже пробовал использовать другую IDE, но это не помогло.

Что именно не так с моим кодом?

Вернуться в «C#»