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では共有)としてマークするか、必要に応じて、メソッド本体または少なくとも1つのプロパティアクセサーで「this」/「Me」を使用します。

Visual Studioがローカルでのビルド中にエラーを表示しない理由を理解するのに役立つことを願っていReleaseます...ああ、狂気です!

4

1 に答える 1

0

さて、ローカルバージョンのStyleCopをアップグレードすると、ローカルでこのエラーが発生します。なぜそれがコード分析に関係するのかはわかりませんが、正直なところ、ReSharperが組織全体にインストールされており、多くの悲しみを引き起こしているため、これらのツールはすべてうまく機能しません。

そうは言っても、とにかくこれを解決する方法はpartial、各WFアクティビティのクラス(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アクティビティを構成するXAMLの属性から{namespace}とを収集できます(XAMLファイルを右クリックして[コードの表示]を選択します)。{classname}x:Class

** WFサービス、つまりXAMLXファイルには必要ありません

于 2012-09-28T11:15:34.997 に答える