我有代码需要我 Pinvoke 到第 3 方本机 DLL。问题是当我使用 Nunit 测试运行程序进行这些测试时,本机 dll 被 nunit 进程(nunit.exe 和 nubit-agent.exe)锁定。因此,我的构建后复制命令因此失败。
生成“成功构建”(包括构建后命令)的唯一方法是首先关闭 Nunit,重建项目并重新打开 Nunit(清洗、冲洗并重复)。这变得乏味和令人沮丧。
有没有办法强制单元将所有句柄释放到加载的程序集中?我对 NUnit 设置进行了一些探索,但无济于事。
旁注:我的其他想法与我实际使用这个 3rd 方 dll 的方式一致(它实际上是 QuantLib 的 C# SWIG 版本)。所以实际上可能存在包装 C# 代码和使用的 IDisposable 模式的问题(基于我收到的另一个问题的评论)。