假装什么也无法产生警告吗?

时间:2018-06-27 22:10:51

标签: microsoft-fakes

我正在尝试解决解决方案中的警告,最后我遇到的是来自Fakes程序集的创建。对于大多数程序集,我能够遵循其他SO答案(vs 2012: Shims compileSuppressing Microsoft Fakes warnings)的建议,并且能够解决警告。但是,只有一个装配体,我很挣扎。

当前我对该程序集的伪造文件如下:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="BEWipGraph" Version="1.0.0.0" />
  <StubGeneration>
    <Clear/>
  </StubGeneration>
  <ShimGeneration>
    <Clear />
  </ShimGeneration>
</Fakes>

甚至排除一切,它仍然输出警告。

Warning     Some fakes could not be generated. For complete details, set Diagnostic attribute of the Fakes element in this file to 'true' and rebuild the project.  

如果要排除所有内容,以验证代码不只是输出所有伪造品,我还尝试过包含一个我知道成功剔除的类。

  <ShimGeneration>
    <Clear />
    <Add FullName="BEWipGraph.TroubleshootingMaterial"/>
  </ShimGeneration>

材料类故障排除

  public class TroubleshootingMaterial {

    public String Description { get; set; }
    public String Id { get; set; }
    public String Mapping { get; set; }

    public TroubleshootingMaterial() { }

    public TroubleshootingMaterial(String inDesc, String inId, String inMapping = null) {
      Description = inDesc;
      Id = inId;
      Mapping = inMapping;
    }
  }

这种情况下仍会产生错误。

对于我使用过的所有其他程序集,使用标记后再专门包含我感兴趣的类,导致警告最终消失了。

我可以想到的与该程序集唯一不同的是,它包含一些类,这些类扩展了QuickGraph图形库中的类。我知道其中某些类型无法正确进行Stub / Shim,这就是我要排除的内容,但是无论我做什么,警告仍然存在。我什至找不到警告号来完全禁止此警告,这是我目前的位置。

有人想到为什么这个大会拒绝像其他人一样拒绝失败的假货吗?尤其是当实际上所有东西都已从一代中删除时,发出警告吗?谢谢

0 个答案:

没有答案