0

添加测试项目后,Visual Studio 2010 和任何报告此错误的框架版本一直存在问题:

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

到目前为止,我只有两个程序集就发生了这种情况,并且始终一致:

  • System.ServiceProcess
  • 系统.配置.安装

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

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

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

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

4

3 回答 3

1

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

于 2011-08-17T17:19:27.780 回答
0

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

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

于 2011-12-22T08:42:45.063 回答
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>
于 2012-06-20T18:01:37.657 回答