Nic*_*nik 6 moles pex-and-moles visual-studio-2010-sp1
我试图在VS 2010 SP1中使用Moles 0.94.51023.0来摧毁System.ServiceModel v4并且我一直得到以下错误: 名称空间'ssm :: System.ServiceModel.Channels中不存在类型或命名空间名称'IHttpCookieContainerManager' '(你错过了一个程序集引用吗?)[my-test-project.Test\obj\Debug\Moles\ssm\mgcsproj] my-test-project.Test\mgcs 293022 43
此接口似乎已从.NET 4.0中的System.ServiceModel.dll中删除,因为当我在对象浏览器中搜索时,我只能在System.ServiceModel.dll v2.0.5.0(Silverlight)中找到它.
我可以使用moles.exe通过cmdline重现这个,我尝试改变moles文件只生成我指定的类型名称,但似乎没有任何区别.这在我升级到VS2010 SP1之前工作正常,所以我怀疑这是一个错误,但任何帮助将不胜感激.
谢谢尼克
我自己调试了这个,发现根本原因似乎是VS2010 SP1(以及.NET 4的相关GDR KB更新)更新了一组DLL而不是另一组:
%ProgramFiles(x86)%\ Referenced Assemblies \中的System.ServiceModel.dll与%windir%\ Microsoft.NET\Framework64\v4.0.30319中的.NET v4安装中的System.ServiceModel.dll不匹配...
发布VS 2010 SP1更新:
%Program Files(x86)%\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.ServiceModel.dll - > File version 4.0.30319.1
%windir%\ Microsoft.NET\Framework64\v4.0.30319\System.ServiceModel.dll - >文件版本4.0.30319.225
在VS中的对象浏览器中以及在Reflector中比较这两个dll会产生IHttpCookieContainerManager接口已在较新文件中删除的结果.所以我怀疑这是.NET探测找到较新的DLL和Moles在做鼹鼠/存根生成时反映旧版本的组合.通过手动运行Moles exe而不使用任何类型的引用路径,我可以为较新的DLL手动生成Moles dll,而不是在构建期间添加一堆ref路径的MSBuild目标.
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |