gpt4 book ai didi

c# - 垫片警告消息

转载 作者:可可西里 更新时间:2023-11-01 08:18:01 26 4
gpt4 key购买 nike

我有一个使用 SHIMS 的小应用程序。

如您所知,它会发出类似的警告“警告 20 无法生成某些伪造品。有关完整的详细信息,请将此文件中 Fakes 元素的诊断属性设置为‘true’并重建项目。”

正如警告中所说,我尝试将诊断标志设置为 true。

所以我得到了所有的警告列表。

来自“mscorlib.fakes”文件的警告数为 1933。

所以为了解决这个问题,我只是查看了以下所有链接。

http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_type_filtering

vs 2012: Shims compile

Suppressing Microsoft Fakes warnings

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

我在项目中遇到很多错误,例如您缺少程序集引用和其他错误。

那么清除所有这些警告的方法和抑制所有这些警告的方法是什么?

最佳答案

当它产生一些额外的警告时,有两种解决方法,例如

Cannot generate shim for System.Diagnostics.ProcessPriorityClass: type is an enum.

您可能不喜欢,您可以通过不为 fakes 文件中的那些类型生成垫片来消除这些警告。像这样的东西:

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

但是,遍历并删除每个带有警告的类可能非常耗时,尤其是对于较大的 BCL。

第二种方法,在我看来更好,是使用带有“!”的类型过滤并且只指定您有兴趣生成的类。 MSDN 上给出的示例似乎表明类型过滤只能用于限制命名空间属性,但也可以像这个例子一样与全名属性一起使用:

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

此示例将仅对 System.Diagnostics.Process 类进行 Shim,而不匹配 System.Diagnostics.ProcessPriorityClass。

关于c# - 垫片警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com