我是唯一一个获得“当前目标框架中不可用的程序集”的人吗?

时间:2011-08-17 17:15:20

标签: .net visual-studio-2010 .net-4.0 reference moles

在添加测试项目后,我遇到了Visual Studio 2010和任何报告此错误的框架版本的持续性问题:

  

“程序集在当前目标框架中不可用”

到目前为止,我只有两个程序集才会发生这种情况,而且始终如一:

  
      
  • System.ServiceProcess
  •   
  • System.Configuration.Install
  •   

问题是项目文件没有为这些引用标识特定的框架版本,在属性中显示版本0.0.0.0。我可以通过手动更改项目文件来解决这个问题,以包括< SpecificVersion> True< / SpecificVersion>在参考元素中。

这是一个问题,因为我无法继承或实现这些有问题的程序集的Mole类型。问题是Pex和Moles在构建过程中生成了自己的项目文件,这些文件也被破坏了。没有机会手动修复这些,我认为使用ICorProfilerCallback.JITCompilationFinished构建一个解决方法来获取任何可编译的内容是非常愚蠢的。

那么,有没有其他人有这个问题?我已经重新安装了VS2010。我没有看到任何解决方法。

我肯定对此进行了研究,并且整年都在努力解决这个问题。我对此感到非常恼火,并认为某些事情已经出错或者我不明白这是预期的行为(我无法想象为什么......)。

3 个答案:

答案 0 :(得分:1)

进入项目属性并将目标框架更改为 .NET Framework 4 。我猜您正在使用默认为 .NET Framework 4 Client Profile 的项目类型。 (例如控制台应用程序)

答案 1 :(得分:0)

我遇到了完全相同的问题,Visual Studio突然无法引用这些程序集: System.ServiceProcess System.Configuration.Install

修复它的唯一方法是重新安装Visual Studio 2010并放弃使用Moles的所有希望,直到它被修复。

答案 2 :(得分:0)

Visual Studio 2010在.csproj文件中生成了以下引用元素:

<Reference Include="System.Configuration.Install" />
<Reference Include="System.ServiceProcess" />

要解决此问题,必须将XML修改为:

<Reference Include="System.Configuration.Install">
    <SpecificVersion>True</SpecificVersion>
</Reference>
<Reference Include="System.ServiceProcess">
    <SpecificVersion>True</SpecificVersion>
</Reference>