2012-03-20 133 views
4

我无法找到已被分配的moq和moq contrib的版本。我可能只是在谷歌失败。Moq和Moq贡献版本

详情:

有moq.contrib的版本与版本起订量4.0.10827,从http://code.google.com/p/moq-contrib/downloads/list最近给了我一个错误的原理:

CA0058:引用的程序集“起订量,Version = 4.0.812.4,Culture = neutral,PublicKeyToken = 69f491c39445e920'找不到。该组件需要分析和被引用:...

或者是有下载起订量4.0.812.4为http://code.google.com/p/moq/downloads/list只有4.0.10827

即使无论从安装的NuGet并没有帮助的资源。

谢谢。

回答

4

看来Moq Contrib有一个新家:http://moqcontrib.codeplex.com/。没有下载,也没有太多有关项目当前状态的信息。

至少他们知道这个不兼容问题:http://moqcontrib.codeplex.com/discussions/255319 但似乎自去年4月以来没有修复它,也没有新的lib库。

您可以尝试修复自己的依赖关系并从源代码构建库。

或者

我发现这个NuGet包Moq.Contrib.Indy

An independent implementation of the Moq.Contrib project, with up-to-date references to Moq and Autofac

我还没有尝试过,但也许值得一试...

+0

似乎工作正常。它增加了一些额外的软件包tho:Autofac,Autofac.CommonServiceLocator和CommonServiceLocator – NikolaiDante 2012-03-20 16:56:10

+0

不幸的是Moq.Contrib.Indy没有移动到最新的稳定版本Moq 4.1.1309.1617。在任何情况下,解决方案都不应该严格依赖版本。 – 2013-09-19 20:58:56

4

我固定它以下列方式。

  1. 为源从

http://code.google.com/p/moq-contrib/downloads/detail?name=Moq.Contrib-0.2-src.zip

  • 然后更改目标框架4.0

  • 添加的起订量4.0,而不是现有的起订量

  • 评论“ve rify“和”VerifyAll“方法。有方法是虚拟的2.0起订量的contrib

  • 重命名方法调用

  • MockFactory到MockRepository ExpectGet到SetupGet

有在项目Autofac参考。我没有尝试改变这个参考到最新的autofac。

+0

我试过Nitin的解决方案。但是Moq Contrib中缺少ContextSpecification的定义。我不得不明确地将它添加到图书馆。之后,这些步骤工作正常。 – user2478528 2013-06-12 13:32:56

0

您可以在应用中设置bindingRedirect。config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0-4.2.1312.1622" newVersion="4.2.1312.1622" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

其中4.2.1312.1622应该用最新的Moq版本代替。