1

누군가가 도움을 줄 수 있기를 바랍니다..net 표준 클래스 라이브러리를 참조 할 때 System.Runtime 어셈블리를 찾을 수 없습니다.

저는 최근에 회사의 프런트 엔드 프로젝트가 새로운 모바일 프로젝트 (Xamarin)와 통신 레이어를 공유 할 수 있도록하기 위해 최근에 .Net Standard 1.3 PCL로 변환 된 프로젝트 모음집을 보유하고 있습니다.

이 새로운 PCL이 WPF 프로젝트에서 참조되면 모든 것이 잘 실행되지만 ASP.net 프로젝트에서 참조하면 런타임 예외가 발생합니다. Runtime Exception

빌드하는 동안 System.Runtime.dll이 프로젝트의 bin 폴더로 출력되지 않았기 때문입니다.

나는 System.Runtime Nuget 패키지를 프로젝트에서 직접 참조하려고 시도했지만 아무 것도 시도하지 않았다. 몇 가지 조사/해킹 후 Nuget 패키지에서 System.Runtime.dll (올바른) 파일을 복사하여 수동으로 bin에로드하면 모든 것이로드됩니다.

그런 다음 누락 된 dll 파일을 bin으로 복사했지만 dll 파일은 아직 배포 패키지에서 제외 된 빌드 작성 이벤트를 작성했습니다.

필자의 의존성과 같은 빌드 과정에서 필요한 dll 파일을 bin 디렉토리에 출력하려면 어떻게해야합니까?

.NetStandard에 관한 문서를 읽었으며이 문제에 대해 봤지만 havent는 도움이되는 자료를 찾지 못했습니다.

답변

1

나는 똑같은 문제가 있어요 - 난 단지 System.Runtime.DLLSystem.Runtime.Extensions.DLLbin 디렉토리에 존재하지 않는 나의 억울함에 다량을 실현하기 위해, 구성 파일 및 NuGet 패키지로 수리를 시도 약 5 시간을 낭비.

돌파구가 있다면 다시 쓸 것입니다.

- EDIT :이 방법이 도움이 될지 모르겠지만 사각형 하나부터 시작하여 PCL 프로젝트를 다시 만든 다음 솔루션에 다시 추가하기로 결정했습니다. PCL을 netstandard1.3으로 설정했습니다. 여기 PCL 내 project.json의 :이 일을하고 IDE를 통해 참조를 추가 한 후

{ 
    "name": "<redacted>", 
    "version": "1.0.0-*", 
    "supports": { 
    "net46.app": {} 
    }, 
    "dependencies": { 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
    "NETStandard.Library": "1.6.0", 
    "Newtonsoft.Json": "9.0.1" 
    }, 
    "frameworks": { 
    "netstandard1.3": { 
     "imports": "portable-net46+win8" 
    } 
    } 
} 

을, 나는 더 이상 어셈블리 오류를하지 않습니다. 또한이 PCL을 .NET Core 1.0 앱에 연결할 수 있습니다.

희망이 도움이됩니다.

+0

추 신. 나는이 도구가 매우 유용하다는 것을 알았다. 실패한 어셈블리 바인딩 만 볼 수 있으며 로더가 처리하는 경로의 정확한 목록을 볼 수 있습니다. [link] (http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx) – Rimmel