无法将Rhino Mocks 3.5添加到Visual Studio 2010中的.NET 2.0项目中
我们将从Dev Studio 2005升级到Dev Studio 2010.我在Visual Studio 2010中打开了我的2005解决方案,并通过转换过程保留所有项目针对.NET 2.0。当我尝试构建该项目时,我对Rhino.Mocks.dll的引用未能使用。我看到象这样的错误:无法将Rhino Mocks 3.5添加到Visual Studio 2010中的.NET 2.0项目中
DalDiscoveryTest.cs(7,7):错误CS0246:(?是否缺少using指令或程序集引用)类型或命名空间名称“犀牛”找不到
我进入我的项目,并删除了对Rhino.Mocks.dll的引用,并试图重新添加它。然后我得到一个对话框,内容如下:
'Rhino.Mocks.dll'或其某个依赖关系需要比项目中指定的更高版本的.NET Framework。您可以通过单击“项目”菜单上的“属性”来更改.NET Framework目标,然后在“.NET Framework”下拉框中选择一个新目标。 ...
我使用的是“Rhino Mocks 3.5 for .NET 2.0”,可在http://www.ayende.com/projects/rhino-mocks/downloads.aspx处获得。这个项目在使用.NET 2.0的Dev Studio 2005中生成良好。唯一的问题是我发现的问题是将测试项目的目标更改为.NET 3.5,但我希望最初将更改最小化。
除了将目标更改为更新版本的.NET之外,是否有解决此问题的方法?
我直接联系了MSDN支持以尝试获取此问题的修补程序。他们能够在Visual Studio 2008和2010中重现此问题。没有修复程序,但通过修改项目设置可以执行相对简单的修复程序。
- 将对第三方DLL(Rhino.Mocks.dll)的引用添加到项目中,并通过单击“是”忽略该警告。
- 单击项目参考并在属性窗口中修改Rhino.Mocks的“特定版本”为“True”。
- 右键单击Visual Studio 2010解决方案资源管理器中的项目节点,然后选择“卸载项目”。
- 右键单击项目节点并选择“编辑您的项目名称”。
- 以
<Reference Include="Rhino.Mocks, ...">
开头的行之后,添加以下行:<SpecificVersion>True</SpecificVersion>
。 - 通过右键单击项目节点并选择“重新加载”来重新加载项目。
- 重建您的项目。
这对我有效。
我刚刚遇到了这个问题。经过一番搜索,我发现this post from Chris May(谢谢克里斯!)
我想有一个名为“期待”的静态方法和扩展方法之间有冲突。
根据文章,我完全符合预期方法,并修复了问题#1。然后更改<SpecificVersion />
问题,修复了我遇到的其他构建问题。
有关于这个问题,这仍然是尚未解决的至少两个开放的bug报告: http://goo.gl/a5VE http://goo.gl/K3oA – 2010-05-06 17:40:24
感谢吉姆。我在微软的网站上创建了一个新的问题,因为他们似乎无法重现其他问题。 https://connect.microsoft.com/VisualStudio/feedback/details/558676/unable-to-add-rhino-mocks-3-5-to-a-net-2-0-project-in-visual-studio -2010 – Eli 2010-05-12 17:25:59
似乎Visual Studio 2010正在以先前版本没有的方式确定程序集依赖关系。可悲的是,三种不同的产品 - 微软报告,SubSonic和RhinoMocks - 现在都出现这个bug。该列表只能增长。它迟早必须得到解决。 – 2010-05-13 18:33:45