我正在使用Microsoft Fakes来填充几个WindowsAzure组件进行测试。按照vs 2012: Shims compile中的建议,我更新了我的.fakes文件,只生成我实际需要的填充程序:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="false">
<Assembly Name="Microsoft.WindowsAzure.Storage" Version="2.1.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="Microsoft.WindowsAzure.Storage.CloudStorageAccount"/>
<Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient"/>
<Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer"/>
<Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob"/>
<Add FullName="Microsoft.WindowsAzure.Storage.Queue.CloudQueueClient"/>
<Add FullName="Microsoft.WindowsAzure.Storage.Queue.CloudQueue"/>
</ShimGeneration>
</Fakes>
但我仍然得到“一些假货无法生成......”的警告。正在生成所有指定的填充程序,并且对上述任何行进行注释会导致我的测试项目无法构建。如果我打开诊断程序,我会看到许多消息,如:
Warning 2 Cannot generate shim for Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient+<>c__DisplayClass1: type is not supported because of internal limitations.
一切正常,我只想抑制警告,以免混淆我们的CI服务器。我是否可以在测试项目中忽略非诊断消息的警告编号?
答案 0 :(得分:14)
答案 1 :(得分:0)
我解决了这一问题,方法是进入Fakes文件夹并删除该程序集的伪造品,然后进入References文件夹并删除该程序集的伪造品DLL。然后,右键单击引用中的程序集,然后再次选择“添加假冒程序集”。
完成所有假货创建工作后(花了几分钟),我再次构建了项目,所有错误都消失了。