[C#] 빌드 오류 : System.Runtime에 대한 참조를 추가해야합니다

새로운 ASP.NET MVC 5.1 솔루션을 준비 중입니다. NuGet 패키지를 추가하고 Zurb Foundation 등으로 설정하고 있습니다.

그것의 일부로, 휴대용 클래스 라이브러리 인 사내 NuGet 패키지에 대한 참조를 추가했으며 이것이 빌드 서버에서 문제를 일으키는 것으로 생각합니다.

TeamCity는 다음과 같이 빌드에 실패합니다.

‘System.Object’유형이 참조되지 않은 어셈블리에 정의되어 있습니다. 어셈블리 ‘System.Runtime, Version = 4.0.0.0에 대한 참조를 추가해야합니다.

원래 Razor 웹 페이지를 컴파일 할 때 동일하거나 유사한 오류에 대한 수정 프로그램을 추가했습니다. web.config

<compilation ... >
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>

그러나 문제는 해결되지 않았습니다.



답변

수정 사항을 구현하려면 먼저 기본적으로 다음과 같은 기존 web.config 컴파일 섹션을 펼치십시오.

<compilation debug="true" targetFramework="4.5"/>

일단 확장되면 지시에 따라 다음과 같은 새로운 구성 XML을 추가했습니다.

  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>

최종 web.config 태그는 다음과 같아야합니다.

<compilation debug="true" targetFramework="4.5">
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>


답변

이 System.Runtime.dll 어셈블리에 대한 참조를 추가하면 문제가 해결되었습니다.

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll

명시 적 경로의 해당 파일이 빌드 서버에 존재하지 않지만

PCL 및이 Facades에 대한 문서를 찾은 후 추가 정보를 게시하겠습니다.

최신 정보

인터넷 전체의 외관 어셈블리에는 거의 아무것도 없습니다.

구글 :

(Facades OR Facade) Portable Library site:microsoft.com


답변

나를 위해 일한 유일한 방법. web.config에 어셈블리 추가

<compilation debug="true" targetFramework="4.5">
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>


답변

허용 된 답변에 @PeterMajeed의 의견이 관련 문제를 해결하는 데 도움이되었습니다. 휴대용 라이브러리를 사용하지 않지만 TeamCity를 실행하는 새로운 Windows Server 2012 설치에서 동일한 빌드 오류가 있습니다.

설치 중 의 Microsoft .NET Framework 4.5.1 개발자 팩 (별도로 설치 한 후 문제를 처리했다 MS 빌드 도구 ).


답변

VS 2015 (MVC는 아님)의 일부 솔루션 및 한 워크 스테이션의 동일한 솔루션이지만 다른 워크 스테이션에서는이 문제가 발생했습니다. .NET 버전을 4.6으로 변경하고 PCL을 참조하면 오류가 나타납니다.

해결책은 간단합니다. 솔루션을 닫고 솔루션과 동일한 폴더에서 숨겨진 .vs 폴더삭제하십시오 .

다른 답변에서 제안한대로 누락 된 참조를 추가하면 문제가 해결되지만 참조를 다시 제거한 후에도 오류가 해결 된 상태로 유지됩니다.

TeamCity는 구성에 문제가 없었기 때문에 말할 수 없습니다. 그러나 디버깅 작업의 일부로 작업 카탈로그를 재설정해야합니다.


답변

그것은 오래된 문제이지만 지속적인 통합 서버에서 빌드 파이프 라인을 수정하기 위해 오늘 직면했습니다. 첨가

<Reference Include="System.Runtime" />

.csproj파일에 문제가 해결되었습니다.

약간의 맥락 : 관심있는 프로젝트는 개발 시스템에서 빌드 문제없이 완전한 .Net 프레임 워크 4.6.1 프로젝트입니다. 우리가 제어 할 수없는 빌드 서버에만 문제가 나타납니다. SDK 버전이 다르거 나 비슷한 것이 원인 일 수 있습니다.

Visual Studio에서 제안 된 참조를 추가 <Reference하면 누락 된 참조 경고 (참조 트리의 추가 된 항목에있는 노란색 삼각형) 의 가격으로 빌드 오류가 해결 되었습니다 .

나는 이것이 비슷한 시나리오의 사람들을 도울 수 있기를 바랍니다 …


답변

.NET 런타임과 대상 .NET 버전의 대상 팩을 설치하십시오.

개발자 팩은이 두 가지가 함께 번들로 제공되지만 현재로서는 4.6 버전이 아닌 것이므로 두 항목을 별도로 설치해야합니다.

다운로드는 여기에서 찾을 수 있습니다 : http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#