0

我知道软件工程师通常不会尖叫,嘿,我没有收到错误,你能帮我解决一个吗!但目前我需要在本地显示此错误,因为它在我们的CI构建中失败。当我在本地没有收到错误时,要抑制它(请相信我,我只需要抑制它,因为它是从 WF 工作流生成的代码)要困难得多,因为成员名称的语法充其量是痛苦的。

构建服务器的 CI 构建使用Release配置,我在本地构建Release,所以理想情况下我会得到相同的错误(通常会)。

Release这是我的项目文件中我的部分的快照:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DebugType>pdbonly</DebugType>
  <Optimize>true</Optimize>
  <OutputPath>bin\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
  <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  <RunCodeAnalysis>true</RunCodeAnalysis>
  <CodeAnalysisRuleSet>..\..\SolutionAnalysis.ruleset</CodeAnalysisRuleSet>
  <StyleCopEnabled>true</StyleCopEnabled>
  <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
  <NoWarn>1591</NoWarn>
</PropertyGroup>

在构建服务器上,我收到此错误(为安全起见,删除了类型和路径名):

obj\Release\WorkflowName_BeforeInitializeComponentHelper.cs (18): CA1822 : Microsoft.Performance :从未使用过“WorkflowName.BeforeInitializeComponent(ref bool)”的“this”参数(或 Visual Basic 中的“Me”) 。将成员标记为静态(或在 Visual Basic 中为 Shared)或在方法主体或至少一个属性访问器中使用“this”/“Me”(如果适用)。

我希望你们都可以帮助我弄清楚为什么 Visual Studio 在Release本地构建期间没有出现错误......哦,疯狂!

4

1 回答 1

0

好的,所以我现在通过升级我的本地版本的 StyleCop 来在本地收到此错误。我不确定为什么这对代码分析有任何影响,但老实说,所有这些工具都不能很好地协同工作,因为我们还在整个组织范围内安装了 ReSharper,这会导致很多悲伤。

所以,话虽这么说,我最终解决这个问题的方法是partial为每个 WF Activity 构建类,即 XAML 文件**,看起来像这样:

// ReSharper disable CheckNamespace
namespace {namespace}
// ReSharper restore CheckNamespace
{
    using System.CodeDom.Compiler;

    /// <summary>
    /// Sets up the [GeneratedCode] attribute for the generated workflow class so that code analysis isn't performed.
    /// </summary>
    [GeneratedCode("", "1.0")]
    public partial class {classname}
    {
    }
}

您可以从构成 WF Activity 的 XAML 中的属性中收集{namespace}和(右键单击 XAML 文件并选择“查看代码”)。{classname}x:Class

** WF 服务(即 XAMLX 文件)不需要它们

于 2012-09-28T11:15:34.997 回答