我有一些针对 VS2012 项目的 C# 单元测试,该项目使用 DllImport pinvoke 调用 VS2010 c++ DLL。
作为测试项目的预构建事件,我将最新版本的 DLL 复制到二进制项目以进行测试。
如果 vstest.discoveryengine 正在运行,这会反复失败。似乎“发现引擎”正在加载测试并锁定 DLL。
如果我杀死 vstest 发现引擎,那么我可以构建并运行测试。否则构建失败,并且 VS2012 提供运行以前的版本(模型对话框没有“不再显示此消息”选项)
我可以做些什么来强制测试项目在不实际运行测试时卸载 DLL,或者禁用后台发现可执行文件?
我通过创建一个名为 Kealakekua 的可执行文件破解了一个解决方法,它杀死了 vstest.discoveryengine.x86、vstest.executionengine.x86,并且作为预构建事件的第一部分,它可以复制文件并构建,但更喜欢不要为我的文件与视觉工作室抗争。