我不知道我需要做什么才能生成假货。在我的测试项目中,我包含了对我想要伪造的程序集的引用。它将 /Fakes/.fakes 添加到我的项目中并构建了该项目。有大量警告,但错误数为 0,并且构建成功完成。但它没有添加对生成的 .Fakes 程序集的任何引用。
大多数警告都是诸如无法为枚举生成存根或垫片之类的内容,或者某些私有类对于 fakes 程序集不可见。程序集中实际上只有 1 个类我想要 Shim,并且没有任何我想要 Stub 的类。所以我编辑了 .fakes 文件:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"
Diagnostic="true">
<Assembly Name="[assembly name]">
<StubGeneration>
<Clear />
</StubGeneration>
<ShimGeneration>
<Clear />
<Add Namespace="[namespace that the 1 class I want to shim is in]" />
</ShimGeneration>
</Assembly>
</Fakes>
我清理并重建了该项目,但仍然收到大量警告,但没有错误,它无法存根或填充我在 .fakes 文件中排除的类,并且 .Fakes 程序集仍然没有生成。
实际上,我如何阻止它尝试创建存根并只为特定命名空间中的类创建垫片?信息来自http://msdn.microsoft.com/en-us/library/hh708916.aspx http://msdn.microsoft.com/en-us/library/hh708916.aspx显然,这是不正确的。
另外,我从 Assembly 元素中删除了 Version 属性,但收到的警告仍然包含命名空间中的版本号。那是怎么回事?
我发现我的问题是什么了。我认为 StubGeneration 和 ShimGeneration 应该是 Assembly 的子元素,但事实并非如此。他们应该是 Fakes 的子代,Assembly 的兄弟姐妹。将我的 .fakes 文件更改为此后,它可以工作:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"
Diagnostic="true">
<Assembly Name="[assembly name]" />
<StubGeneration>
<Clear />
</StubGeneration>
<ShimGeneration>
<Clear />
<Add Namespace="[namespace that the 1 class I want to shim is in]" />
</ShimGeneration>
</Fakes>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)