성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 그냥 RSS Reader 기능과 약간의 UI 편의성 때문에 사용...
[이종효] 오래된 소프트웨어는 보안 위협이 되기도 합니다. 혹시 어떤 기능...
[정성태] @Keystroke IEEE의 문서를 소개해 주시다니... +_...
[손민수 (Keystroke)] 괜히 듀얼채널 구성할 때 한번에 같은 제품 사라고 하는 것이 아...
[정성태] 전각(Full-width)/반각(Half-width) 기능을 토...
[정성태] Vector에 대한 내용은 없습니다. Vector가 닷넷 BCL...
[orion] 글 읽고 찾아보니 디자인 타임에는 InitializeCompon...
[orion] 연휴 전에 재현 프로젝트 올리자 생각해 놓고 여의치 않아서 못 ...
[정성태] 아래의 글에 정리했으니 참고하세요. C# - Typed D...
[정성태] 간단한 재현 프로젝트라도 있을까요? 저런 식으로 설명만 해...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>.NET Core + BenchmarkDotNet 실행 시 프레임워크를 찾지 못하는 문제</h1> <p> .NET Core Console 프로젝트에서 BenchmarkDotNet을 이용해 성능 테스트를 하는 경우 다음과 같은 출력 결과가 나올 수 있습니다.<br /> <br /> <pre style='height: 400px; margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // ***** BenchmarkRunner: Start ***** // Found benchmarks: // LoopTest.ForLoopTest: DefaultJob [N=1000] // LoopTest.SpanLoopTest: DefaultJob [N=1000] // LoopTest.PtrLoopTest: DefaultJob [N=1000] // LoopTest.ForLoopTest: DefaultJob [N=10000] // LoopTest.SpanLoopTest: DefaultJob [N=10000] // LoopTest.PtrLoopTest: DefaultJob [N=10000] // Validating benchmarks: // ***** Building 6 benchmark(s) in Parallel: Start ***** // ***** Done, took 00:00:29 (29.47 sec) ***** // ************************** // Benchmark: LoopTest.ForLoopTest: DefaultJob [N=1000] // *** Execute *** // Launch: 1 / 1 <span style='color: blue; font-weight: bold'>It was not possible to find any compatible framework version</span> <span style='color: blue; font-weight: bold'>The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found.</span> - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ************************** // Benchmark: LoopTest.SpanLoopTest: DefaultJob [N=1000] // *** Execute *** // Launch: 1 / 1 It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ************************** // Benchmark: LoopTest.PtrLoopTest: DefaultJob [N=1000] // *** Execute *** // Launch: 1 / 1 It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ************************** // Benchmark: LoopTest.ForLoopTest: DefaultJob [N=10000] // *** Execute *** // Launch: 1 / 1 It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ************************** // Benchmark: LoopTest.SpanLoopTest: DefaultJob [N=10000] // *** Execute *** // Launch: 1 / 1 It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ************************** // Benchmark: LoopTest.PtrLoopTest: DefaultJob [N=10000] // *** Execute *** // Launch: 1 / 1 It was not possible to find any compatible framework version The specified framework 'Microsoft.NETCore.App', version '2.1.0-preview1-26216-03' was not found. - Check application dependencies and target a framework version installed at: C:\Program Files\dotnet\ - Installing .NET Core prerequisites might help resolve this problem: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 - The .NET Core framework and SDK can be installed from: https://aka.ms/dotnet-download - The following versions are installed: 1.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 1.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0-preview1-26105-01 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] ExitCode != 0 No more Benchmark runs will be launched as NO measurements were obtained from the previous run! // ***** BenchmarkRunner: Finish ***** // * Export * BenchmarkDotNet.Artifacts\results\LoopTest-report.csv BenchmarkDotNet.Artifacts\results\LoopTest-report-github.md BenchmarkDotNet.Artifacts\results\LoopTest-report.html // * Detailed results * LoopTest.ForLoopTest: DefaultJob [N=1000] Runtime = ; GC = There are not any results runs LoopTest.SpanLoopTest: DefaultJob [N=1000] Runtime = ; GC = There are not any results runs LoopTest.PtrLoopTest: DefaultJob [N=1000] Runtime = ; GC = There are not any results runs LoopTest.ForLoopTest: DefaultJob [N=10000] Runtime = ; GC = There are not any results runs LoopTest.SpanLoopTest: DefaultJob [N=10000] Runtime = ; GC = There are not any results runs LoopTest.PtrLoopTest: DefaultJob [N=10000] Runtime = ; GC = There are not any results runs Total time: 00:00:29 (29.72 sec) // * Summary * BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134 Intel Core i5-4670 CPU 3.40GHz (Haswell), 1 CPU, 4 logical and 4 physical cores .NET Core SDK=2.2.0-preview1-007877 [Host] : .NET Core 2.1.0 (CoreCLR 4.6.26515.07, CoreFX 4.6.26515.06), 64bit RyuJIT Method | N | Mean | Error | ------------- |------ |-----:|------:| ForLoopTest | 1000 | NA | NA | SpanLoopTest | 1000 | NA | NA | PtrLoopTest | 1000 | NA | NA | ForLoopTest | 10000 | NA | NA | SpanLoopTest | 10000 | NA | NA | PtrLoopTest | 10000 | NA | NA | Benchmarks with issues: LoopTest.ForLoopTest: DefaultJob [N=1000] LoopTest.SpanLoopTest: DefaultJob [N=1000] LoopTest.PtrLoopTest: DefaultJob [N=1000] LoopTest.ForLoopTest: DefaultJob [N=10000] LoopTest.SpanLoopTest: DefaultJob [N=10000] LoopTest.PtrLoopTest: DefaultJob [N=10000] // * Legends * N : Value of the 'N' parameter Mean : Arithmetic mean of all measurements Error : Half of 99.9% confidence interval 1 ns : 1 Nanosecond (0.000000001 sec) // ***** BenchmarkRunner: End ***** // * Artifacts cleanup * </pre> <br /> BenchmarkDotNet이 CoreCLR을 찾는 기준이 뭔지는 모르겠지만 메시지에 나온 "2.1.0-preview1-26216-03" 버전이 어떻게 나온 것인지 이해가 안 됩니다. 왜냐하면 (64비트로 실행한 위의 예제는) 그 버전과 관련된 dotnet 런타임 설치는 한 적이 없기 때문입니다. (물론, 제가 모를 수도 있지만!) 다음은 제 컴퓨터에 설치된 (x64 버전의) sdk와 runtime의 목록입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\Program Files\dotnet><span style='color: blue; font-weight: bold'>dotnet --list-sdks</span> 1.0.4 [C:\Program Files\dotnet\sdk] 1.1.0 [C:\Program Files\dotnet\sdk] 2.0.0 [C:\Program Files\dotnet\sdk] 2.0.2 [C:\Program Files\dotnet\sdk] 2.0.3 [C:\Program Files\dotnet\sdk] 2.1.2 [C:\Program Files\dotnet\sdk] 2.1.3 [C:\Program Files\dotnet\sdk] 2.1.4 [C:\Program Files\dotnet\sdk] 2.1.104 [C:\Program Files\dotnet\sdk] 2.1.200 [C:\Program Files\dotnet\sdk] 2.1.201 [C:\Program Files\dotnet\sdk] 2.1.300 [C:\Program Files\dotnet\sdk] 2.2.0-preview1-007877 [C:\Program Files\dotnet\sdk] C:\Program Files\dotnet><span style='color: blue; font-weight: bold'>dotnet --list-runtimes</span> Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.0-preview1-26105-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] </pre> <br /> 어쨌든 저 목록에 없기 때문에 그런 오류가 발생한 것입니다. 관련해서 직접적인 해결 방법을 찾을 수는 없었는데요, 대신 csproj의 RuntimeFrameworkVersion을 명시하는 것으로 우회할 수 있었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.1</TargetFramework> <span style='color: blue; font-weight: bold'><RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion></span> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> <PlatformTarget>x64</PlatformTarget> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> <PlatformTarget>x64</PlatformTarget> </PropertyGroup> <ItemGroup> <PackageReference Include="BenchmarkDotNet" Version="0.10.14" /> </ItemGroup> </Project> </pre> <br /> "dotnet --list-runtimes" 명령어로 출력된 목록 중에 원하는 버전을 RuntimeFrameworkVersion에 명시하면 .NET Core Console 응용 프로그램이 그 환경에서 동작하게 됩니다. 이럴 때 BenchmarkDotNet은 별다른 버전 찾기를 하지 않아 오류가 발생하지 않는 것 같습니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1650
(왼쪽의 숫자를 입력해야 합니다.)