asp.net mvc 호출 TemporaryGeneratedFile_[guid] in/obj/디버깅 빌드 빌드




c# web api 호출 (5)

obj / debug에 3 개의 임시 파일이 생성되었습니다.

예 :

  • TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  • TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  • TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

(용액이 깨끗한 후에도 지침이 바뀌지 않는 것 같습니다)

내 빌드가 실패합니다.

SA1633 : 파일에 머리글이 없거나 머리글 Xml이 유효하지 않거나 머리글이 파일 맨 위에 있지 않습니다.

StyleCop 규칙을 해제하고 싶지 않습니다. 이 임시 파일을 만드는 방법을 어떻게 알 수 있습니까?

이 사이트는 5 개의 모델, 4 개의 컨트롤러, 2 개의 클래스, 2 개의 aspx 웹 페이지 및 1 개의 서비스 참조와 함께 asp.net MVC 4 사이트입니다. 이는 수치 적으로 3 개의 파일로 계산되지 않습니다.

어떤 포인터?

편집 : 프레임 워크를 4.5에서 4로 변경하면이 파일들이 사라지고 빌드가 성공합니다.

StyleCop의 제 버전은 4.4입니다. obj / debug를 무시할 수있는 방법을 찾는 것 이상입니다.


프로젝트 솔루션 (누구의 빌드)에서이 오류가 발생했는지 확인하여이 문제를 해결했습니다.

  1. 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트를 언로드하십시오.
  2. 그런 다음 프로젝트를 마우스 오른쪽 단추로 클릭하고 .csproj 파일을 편집하십시오.
  3. 이 temp (문제가있는) 생성 파일을 찾으십시오. (예제 코드 참조)
  4. 이 파일 참조를 .csproj 파일에서 제거하십시오.
  5. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트를 다시로드하십시오.
  6. 솔루션을 다시 빌드하십시오.
  7. 지금가는 것이 좋다 ...

그들은 csproj 파일에서 다음과 같이 보입니다 :

<Compile Include="src\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs" />
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs" />
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs" />

나는 최근에이 같은 문제를 아무데도 만났습니다.

필자는 각 프로젝트의 .csproj 파일을 열어이를 극복하고 다음 줄을 제거 할 수있었습니다.

<Import Project="$(SolutionDir)\CodeAnalize\Microsoft.StyleCop.targets" />

솔루션을 다시 열면 오류없이 모든 것을 구축 할 수있었습니다.


StyleCop.Settings 파일의 파서 블록에서이 파일에 대한 항목을 추가하십시오. 값은 정규 표현식이므로 guid를 일치시키는 데 더 엄격한 방법을 사용할 수 있지만 지금은 필자의 필요를 충족시킵니다.

  <Parsers>
    <Parser ParserId="Microsoft.StyleCop.CSharp.CsParser">
      <ParserSettings>
        <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
        <CollectionProperty Name="GeneratedFileFilters">
          <Value>\.g\.cs$</Value>
          <Value>\.generated\.cs$</Value>
          <Value>\.g\.i\.cs$</Value>
          <Value>TemporaryGeneratedFile_.*\.cs$</Value>
        </CollectionProperty>
      </ParserSettings>
    </Parser>
  </Parsers>

비슷한 문제에 직면하여 다음과 같이 해결했습니다.

obj 폴더에서 디버깅 외에도 bin 폴더 에서 디버그를 삭제하고 다시 작성했습니다.


"TemporaryGeneratedFile_"접두사가있는 3 개의 파일은 체인을 통해 가장 많이 가져온 Microsoft.WorkflowBuildExtensions.targets 파일에 의해 자동 생성됩니다.

  • * .csproj ->
  • Microsoft.CSharp.targets ->
  • Microsoft.Common.targets ->
  • Microsoft.WorkflowBuildExtensions.targets

$(IntermediateOutputPath) MSBuild 속성 (일반적으로 obj\debug 와 같은 $(IntermediateOutputPath) 가리키는 중간 출력 경로 아래에 생성됩니다. 이러한 자동 생성 파일에 대한 StyleCop 경고 / 오류를 처리하는 한 가지 방법은 $(IntermediateOutputPath) 아래의 * .cs 파일을 건너 뛰도록 StyleCop에 알려주는 것입니다. 예를 들어 프로젝트에 다음 항목을 포함시킵니다.

<ItemGroup>
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" />
</ItemGroup>

ExcludeFromStyleCop 은 StyleCop.targets 파일에 의해 인식되는 항목 이름으로, 빌드 중 분석에서 파일을 제외합니다 (적어도 StyleCop 4.7의 경우). 이중 별표 ** 는 폴더 아래에서 재귀 적으로 검색하기위한 MSBuild 구문입니다.

Visual Studio의 솔루션 탐색기에 새 항목이 표시 될 수 있습니다. 그것이 바람직하지 않은 경우 '보이는'항목 메타 데이터를 사용하여 숨길 수 있습니다.

<ItemGroup>
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" >
        <Visible>False</Visible>
    </ExcludeFromStyleCop>
</ItemGroup>

필요한 경우 다른 파일을 제외하기 위해 유사한 방법을 사용할 수 있습니다. 도움이되기를 바랍니다.





stylecop