填充警告信息

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

vs 2012:Shims编译

抑制Microsoft Fakes警告

http://connect.microsoft.com/VisualStudio/feedback/details/848682/microsoft-fakes-not-creating-properties-in-a-shim-of-a-class-with-auto-generated-properties

和其他东西.

但我仍然无法弄清楚如何解决所有这些警告.

我也想知道有没有办法来抑制这个警告.

那么如何以正确的方式删除所有这些警告?有没有其他方法可以抑制所有这些警告?

每当我添加

<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)