我不知道该怎么做才能生成伪造品。在我的测试项目中,我引用了要伪造的程序集。它将/Fakes/ .fakes添加到我的项目中,并构建了该项目。有很多警告,但有0个错误,构建成功完成。但是它没有添加对生成的.Fakes程序集的任何引用。

大多数警告是由于无法为枚举生成 stub 或填充,或者伪造程序集不可见某些私有(private)类。实际上,我要填充的程序集中只有1个类,而我不想 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>

我清理并重建了该项目,但仍然收到大量警告,没有错误,它无法 stub 或填充在.fakes文件中排除的类,并且.fakes程序集仍未生成。

我实际上如何阻止它尝试创建 stub ,而仅为特定 namespace 中的类创建垫片? http://msdn.microsoft.com/en-us/library/hh708916.aspx提供的信息显然是不正确的。

另外,我从Assembly元素中删除了Version属性,但是我得到的警告仍然在 namespace 中包括版本号。那是怎么回事?

最佳答案

我发现了我的问题所在。我以为StubGeneration和ShimGeneration应该是Assembly的子元素,但事实并非如此。他们应该是假货的 child ,也是议会的 sibling 。将我的.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>

关于visual-studio-2013 - 伪装程序集未生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23389462/

10-17 00:13