VS 2010项目参考寻找不正确的版本

时间:2012-06-21 15:09:16

标签: visual-studio-2010 unit-testing .net-4.0 moles

我们最近接管了一家外包公司的项目。这个项目使用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。从我们的解决方案中的一堆程序集上手动运行它,我发现它适用于某些程序,但不适用于其他程序。但是,我无法确定有效的和有效的无差异。

由于

1 个答案:

答案 0 :(得分:0)

啊,是的。我多次读过这个故事,并且有T恤。当遇到任何问题时,我会使用我常用的Moles急救包,包括这个问题。

也许,这个问题会提供一些帮助:Am I the only one getting "Assembly Not Available in the Currently Targeted Framework"?

  • 确保在工作站和/或构建服务器上正确安装了Moles框架
  • 确保正在构建Moles装配(请参阅排除的“Moles装配”目录)
  • 检查您的构建配置文件 - 可能需要将其设置为完整的框架配置文件
  • 三重检查您的输出目的地和后期构建命令 - 我似乎有一些解决方案将输出复制到另一个位置
  • 尝试使用Visual Studio Pex / Moles扩展程序,如果您还没有这样做

侵入性修复 - 所有过程只是创建一个全新的解决方案,项目和测试项目,然后将现有的代码文件复制到其中。令人惊讶的是,可以解决与项目相关的各种错误的问题。基本上,整个解决方案都需要重新启动。

由于您要更新到.NET 4,您可以转到4.5,并使用Moles的产品化版本,称为“Fakes”。您将在Visual Studio 2012发布候选版本中找到Fakes。这一重要特征并未受到太多关注。