ReSharper 7.1.1 代码检查错误报告 <location>
web.config
中的元素如果它们涉及与源树中的文件夹不直接对应的 URL,则文件是多余的。如果您使用的是 ASP.NET MVC 或 Web API,则 URL 路径不直接对应于任何特定的物理文件夹是正常的。
如果您运行解决方案范围的检查,您会收到两个警告,我已经能够禁用其中一个,但我不知道如何禁用第二个。
第一个是“冗余位置元素”警告。 ReSharper 淡出整个位置部分。这是它会淡出的示例:
<location path="FederationMetadata">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
如果您通过 ACS 使用联合登录,并且您希望为此提供元数据端点,则需要此配置。但是不会有这个名字对应的路径。
(严格来说,这与 MVC 或 Web API 无关。我给出了这个示例,因为它很常见。但是,我的项目也有几个
<location>
元素对应于通过 MVC 和 Web API 路由配置处理的路径,并且他们有同样的问题. 根本原因似乎是相同的:ReSharper 在项目中看不到与此位置对应的任何内容,因此它错误地得出结论认为这是错误的。它影响 MVC 和 Web API Controller ,以及任何由于模块等原因可用的路径。)摆脱第一个警告很容易:您可以在“检查严重性”设置中将其关闭。
然后你会得到第二个警告:“Location element is used: no project item found at FederationMetadata”(以及对于每个具有相应
<location>
元素的 Controller 的类似警告)。这个仅出现在您检查整个解决方案时出现的“检查结果”面板中。当您查看源文件本身时,通常不会出现任何检查小部件。奇怪的是,这个似乎没有被禁用的选项。
我知道您可以右键单击并选择“隐藏...”(尽管这似乎认为这是一个“冗余位置”问题,我已经在设置中禁用了该问题),但据我所知,隐藏检查结果在我的机器上是本地的。我想配置团队共享点设置,以便它不会在任何地方显示此警告。
我的目标是为所有用户提供干净的检查结果,而不是让每个用户隐藏结果。 Resharper 虚假地报告了这个问题 -
web.config
很好,只是R#误解了它。有谁知道我怎样才能使第二个警告消失? (或者,更好的是,有什么方法可以让 R# 能够知道这些“隐藏”位置确实存在?)
最佳答案
我刚刚添加了这个:
<!-- ReSharper disable WebConfig.RedundantLocationTag -->
<!-- ReSharper disable WebConfig.WebConfigPathWarning -->
<location path="api">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<!-- ReSharper restore WebConfig.RedundantLocationTag -->
<!-- ReSharper restore WebConfig.WebConfigPathWarning -->
关于asp.net-mvc - 使用 MVC 和 WebAPI 避免 Resharper <location> web.config 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15655452/