就像102中描述的那样从DllImportAttribute迁移到LibraryImportAttribute时,我偶然发现了DefaultDllImportSearchPathsAttribute,它指定了用于搜索DLC的路径.

假设我有以下DLC导入,

[DllImport("user32.dll")]
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);

更新为

[LibraryImport("user32.dll")]
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
private static partial bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);

,搜索路径是否也会像以前那样由Library ImportProperty处理?

推荐答案

正如 comments 中已经指出的那样,答案是肯定的,

DefaultDllImportSearchPaths will be handled by the LibraryImport as well.

在.NET源代码中可以看到LibraryImportGenerator.cs handles the DllImportSearchPathsAttribute. 用一些最小的示例可执行文件对其进行反编译和测试也证实了这一点.

Csharp相关问答推荐

EF Core判断是否应用了AsSplitQuery()

HttpContext. RequestAborted当Android APP失go 连接时未取消

如何修改中间件或其注册以正确使用作用域服务?

与C#中的Zip列表并行

Azure Redis缓存与Entra ID身份验证

C#XmlSerializer-输出控制新行的多个XML片段

查找表中的模式

Rider将.NET安装在哪里

.NET SDK包中的官方C#编译器在哪里?

try 使用C#ASP.NET收集WMI信息时访问被拒绝,但在PowerShell中工作

Polly重试URL复制值

在PostgreSQL上使用ExecuteSqlRawAsync的C#11原始字符串文字有区分大小写的问题

为什么我的伺服电机不动,下面的代码?

这是否比决定是否使用ConfigureAWait(False)更好?

用于获取字符串的最后12个字符的正则表达式(空格除外)

如何从Azure函数使用Graph API(SDK 5.35)中的[FindMeetingTimes]

根据优先级整理合同列表

C#中COM对象的实际地址

使用LibraryImport在多个dll中导入相同的函数

无法将.Net Framework 4.8.1升级到.Net 7