Nir*_*ani 12 c# microsoft-fakes visual-studio-2012
我正在使用SHIMS的小应用程序.
所以,当你知道它给像警告"警告20个有些假货也不会发生.有关完整信息,在此文件中设置假货元素的诊断属性为'真’和重建项目."
正如警告中所述,我试图将Diagnostic标志设置为true.
所以我指定了所有警告列表.
"mscorlib.fakes"文件中的警告数为1933.
所以要解决它,我只是看看以下所有链接检查出来.
http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_type_filtering
和其他东西.
但我仍然无法弄清楚如何解决所有这些警告.
我也想知道有没有办法来抑制这个警告.
那么如何以正确的方式删除所有这些警告?有没有其他方法可以抑制所有这些警告?
每当我添加
<ShimGeneration>
<Clear/>
// other tags like add and etc..
<ShimGeneration/>
Run Code Online (Sandbox Code Playgroud)
我在项目中遇到很多错误,比如你缺少程序集引用和其他错误.
那么清除所有这些警告以及抑制所有这些警告的方法是什么?
Mar*_*tin 11
当它产生一些额外警告时有两种解决方法,例如:
Cannot generate shim for System.Diagnostics.ProcessPriorityClass: type is an enum.
Run Code Online (Sandbox Code Playgroud)
你可能不喜欢,你可以通过不为fakes文件中的那些类型生成Shims来摆脱这些警告.就像是:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="System" Version="4.0.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="System.Diagnostics.Process"/>
<Remove FullName="System.Diagnostics.ProcessPriorityClass"/>
<Remove FullName="System.Diagnostics.ProcessWindowStyle"/>
</ShimGeneration>
</Fakes>
Run Code Online (Sandbox Code Playgroud)
然而,通过并删除每个具有警告的类可能是耗时的,尤其是对于较大的BCL.
第二种方法,在我看来更好,是使用'!'类型过滤 并且只指定您有兴趣生成的类.MSDN上给出的示例似乎表明类型过滤只能用于限制命名空间属性,但也可以与fullname属性一起使用,如下例所示:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="System" Version="4.0.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="System.Diagnostics.Process!"/>
</ShimGeneration>
</Fakes>
Run Code Online (Sandbox Code Playgroud)
此示例仅修改System.Diagnostics.Process类,而不匹配System.Diagnostics.ProcessPriorityClass.
Abh*_*hat 10
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="mscorlib" Version="4.0.0.0"/>
<StubGeneration>
<Clear />
</StubGeneration>
<ShimGeneration>
<Clear />
<!-- Add or remove library or class -->
</ShimGeneration>
</Fakes>
Run Code Online (Sandbox Code Playgroud)