我知道软件工程师通常不会尖叫,嘿所有我没有收到错误,你能帮我拿一个!但是目前我需要将此错误显示在本地,因为它在我们的CI
版本上失败了。当我没有在本地获得错误时,因为成员名称的语法是at,因此很难抑制(请相信我,我只需要压制它,因为它是从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:'this'参数(或'我从不使用'WorkflowName.BeforeInitializeComponent(ref bool)'的“在Visual Basic中”。将成员标记为静态(或在Visual Basic中为Shared)或在方法体中使用“this”/“Me”,或者在适当的情况下使用至少一个属性访问者。
我希望你们都能帮我弄清楚为什么Visual Studio在Release
本地构建期间没有出现错误......哦,INSANITY!
答案 0 :(得分:0)
好的,所以我现在通过升级本地版本的StyleCop在本地获得此错误。我不确定为什么这对代码分析有任何影响,但老实说所有这些工具都不能很好地协同工作,因为我们还安装了ReSharper组织范围,这会引起很多悲痛。
所以,话虽这么说,我最终解决这个问题的方法是为每个WF活动构建partial
类,即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}
属性收集{classname}
和x:Class
(右键单击XAML文件并选择“查看代码”)
**您不需要它们用于WF服务,即XAMLX文件