我们最近从一家外包公司接手了一个项目。这个项目使用 Moles 和 Pex 进行单元测试,但是由于我们很久没有这个项目,我对框架不是很熟悉。
话虽如此,我们正忙着升级这个项目以在 .Net 4 中运行。我已经解决了大部分跳出的问题,但有一个我无法处理。由于错误,一些单元测试无法编译:
无法加载文件或程序集“Example.Assembly,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。
令我困惑的部分是它是一个项目引用,并且程序集正在被复制到单元测试的输出目录中。找到了大多数其他项目参考资料,我无法发现有效的和无效的之间有任何区别。我不确定这个问题是否与 pex/moles 框架有关,但我想我会提到它。
我已经尝试过删除和添加所有引用以及重新生成 moles 程序集的常规方法。
有没有其他人遇到过这个问题?任何帮助将不胜感激。
EDIT1:好的,在对构建输出进行更多调查之后,它看起来好像不是痣,而是未正确生成的 .accessor 文件。我遇到了与Unit test project cannot find assembly under test (or dependencies)中所问的完全相同的问题,但与他的问题不同,我的问题在删除访问器后并没有消失。
EDIT2:原来是一个名为 Publicize.exe 的程序,它因该错误而崩溃。仍然不知道为什么。查看 Fusion 日志似乎没有在工作目录下搜索它试图为其生成访问器的 dll。在我们解决方案中的一堆程序集上手动运行它,我发现它适用于某些,但不适用于其他。但是,我无法确定有效和无效之间的区别。
谢谢