2013-09-26 2 views
14

PostSharp의 권장 모범 사례에 따라 모든 프로젝트에 PostSharp가 포함되어 있습니다. 그러나 이러한 어셈블리 중 일부에서는 다른 측면이나 변형이 없습니다. 그들은 단지 do이 사용하는 측면을 가지고있는 다른 프로젝트를 참조합니다.건너 뛰지 않고 빌드시 PostSharp 경고 PostSharp

모듈은 모든 측면 또는 다른 변환을 포함하지 않는 'xxxxxxx.dll'

빌드 시간에, 나는 다음과 같은 경고를 얻을. 빌드 타임 성능을 향상 시키려면 프로젝트에서 편집 기호 (일명 상수) 'SkipPostSharp'를 설정하거나이 모듈의 PostSharp를 사용하지 않도록 설정하거나 MSBuild 속성 'SkipPostSharp = True'를 설정하십시오.

감사합니다. PostSharp! 그러나 나는이 모듈에 대해 PostSharp를 사용할 수 없다고 생각하고 그렇게하지 않기로 결정했습니다. 이전에 애스펙트가 없었던 프로젝트에서 PostSharp를 사용하기로 결정할 때 생각할 필요가 없기 때문에, 빌드 타임 성능을 조금만 잃어 버리게되어서 기쁩니다.

어떻게이 힌트에 대해 알려주지 않고 SkipPostSharp을 사용하지 않고 PostSharp가 멈추게합니까? PostSharp 탭에서 프로젝트 속성에서

답변

13

라인 항목 "장애인 메시지 (세미콜론로 구분 된 목록)"그 분야에서

특정 메시지의 코드를 입력이있다. 그게 뭔지는 모르겠지만 PS0121

또는 프로젝트 파일 "* .csproj"를 수동으로 편집하면 해당 구성에 대해 PropertyChange에 PostSharpDisableMessages 요소를 추가 할 수 있습니다 (아래 그림 참조).

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <OutputPath>bin\Debug\</OutputPath> 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> 
    <PostSharpDisabledMessages>PS0131;PS0121</PostSharpDisabledMessages> 
    </PropertyGroup> 
+3

PS0131이지만 감사합니다. 나는이 무능한 경고 단면이 존재했다는 것을 몰랐다. –

+0

"PostSharp 탭"을 보려면 뭔가 추가 설치해야합니까? 우리는 클라이언트에 아무것도 설치하지 않고 그것을 사용하므로 그러한 탭이 보이지 않습니다. 나는 이것을하지 않고도 할 수있는 방법이 있다고 생각하지 않습니까? – PandaWood

+0

Visual Studio 용 PostSharp 도구를 설치하여 프로젝트 속성 창에서 PostSharp 탭을 확인해야합니다. https://www.postsharp.net/download에서 다운로드 할 수 있습니다. –

3

당신은 내용과 PostSharp.Custom.targets라는 솔루션 폴더에 파일을 추가하여 에서 솔루션의 모든 프로젝트를 이러한 경고를 조용히 할 수

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <PostSharpDisabledMessages>LA0156;PS0131</PostSharpDisabledMessages> 
    </PropertyGroup> 
</Project> 

LA0156;PS0131 세미콜론으로 구분 된 목록입니다 사용하지 않으려는 경고의

구체적 PS0131

프로젝트 '< 어셈블리 이름 >는'임의의 양태 또는 다른 변형을 포함하지 않는 비활성화. Visual Studio에서 프로젝트 속성을 편집하여이 프로젝트의 PostSharp를 비활성화 할 수 있습니다. 이 프로젝트에 애스펙트를 추가하면 포스트 샤프를 다시 활성화해야합니다.

그리고 LA0156는 가로 세로 형 "< 전체 유형 이름 >"에 대한 정보를 저장

누락 된 코드를 사용하지 않습니다. 코드 저장 메트릭은 정확하지 않습니다. 애스펙트 클래스에 [LinesOfCodeAvoided]를 추가하거나 advice custom 애트리뷰트의 LinesOfCodeAvoided 속성을 지정하거나 경고 LA0156을 무시한다.