我正在尝试解决解决方案中的警告,最后我遇到的是来自Fakes程序集的创建。对于大多数程序集,我能够遵循其他SO答案(vs 2012: Shims compile,Suppressing 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,这就是我要排除的内容,但是无论我做什么,警告仍然存在。我什至找不到警告号来完全禁止此警告,这是我目前的位置。
有人想到为什么这个大会拒绝像其他人一样拒绝失败的假货吗?尤其是当实际上所有东西都已从一代中删除时,发出警告吗?谢谢