1

我在 Visual Studio 2010 中使用 Moles,并且一直运行良好。但是,在这种情况下,痣将不起作用。mscorlib.Behaviors程序集引用 .NET 4 程序集,即使项目设置为 .NET 3.5(完整)配置文件。

我有一个最初使用 Visual Studio 2010 在 .NET 4 中构建的解决方案。所需的程序集 (System.ServiceProcess; System.Configuration.Install) 仅适用于 .NET 4 客户端配置文件。测试项目可能只是 .NET 4 (full) Profile,因此不兼容。因此,我将目标项目和测试项目的框架配置文件都更改为 .NET 3.5(完整),因为此配置文件中允许这些程序集。

以下是编译器警告:

无法解析主要参考“mscorlib.Behaviors,Version=0.94.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL”,因为它间接依赖于 .NET Framework 程序集“mscorlib,Version=4.0.0.0 , Culture=neutral, PublicKeyToken=b77a5c561934e089” 比当前目标框架中的“2.0.0.0”版本“4.0.0.0”高。

有什么方法可以强制 Moles 坚持使用 .NET 3.5,而不必将应用程序移植到 Visual Studio 2008?我真的,真的不想那样做。


更新:

我相信这些是同一个问题:我是唯一一个得到“当前目标框架中不可用的程序集”的人吗?

4

2 回答 2

0

我不确定这是否是同一个问题,但是每当我选择“系统”参考的“添加 Moles 程序集”时,我都会将“System.Behaviors”程序集添加到我的“MolesAssemblies”文件夹中。然后,当我从项目中删除 System.Moles 时,System.Behavior.dll 文件从未从“MolesAssemblies”文件夹中删除,并导致构建服务器问题(类似于您所看到的)。即使我尝试从项目的引用中删除 System.Behaviors 引用,每次我构建该项目时,它都会回来。

解决方案是确保从项目中删除所有对 System.Behavior 的引用同时删除MolesAssemblies\System.Behaviors.dll. 构建项目后,引用将不再显示。

也许自从您切换到 .NET 3.5 后,这个原始的 .NET 4.0 System.Behaviors.dll 仍然存在并导致这些问题。尝试删除它(以及您对系统程序集的摩尔引用),然后再次为系统程序集添加摩尔程序集。

于 2011-06-10T15:18:04.823 回答
0

我是唯一一个得到“当前目标框架中不可用的程序集”的人部分回答了这个问题吗? 具体解决方案仍然存在遗留问题。但是,自从报告了这个问题以来,这对新的解决方案来说并不是问题。

于 2012-06-20T18:04:37.250 回答