Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

(시리즈 글이 6개 있습니다.)
오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류
; https://www.sysnet.pe.kr/2/0/11886

개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법
; https://www.sysnet.pe.kr/2/0/11889

개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록
; https://www.sysnet.pe.kr/2/0/11890

오류 유형: 539. mstest 실행 시 "The directory name is invalid." 오류 발생
; https://www.sysnet.pe.kr/2/0/11902

오류 유형: 575. mstest.exe - System.Resources.MissingSatelliteAssemblyException: The satellite assembly named "Microsoft.VisualStudio.ProductKeyDialog.resources.dll, ..."
; https://www.sysnet.pe.kr/2/0/12044

오류 유형: 576. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/12045




mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류

mstest.exe 실행 시 다음과 같이 "Visual Studio Enterprise" 버전이 아니라는 오류가 뜹니다.

c:\temp> mstest.exe /testcontainer:c:\temp\test.loadtest
??Microsoft (R) Test Execution Command Line Tool Version 16.0.28326.58
Copyright (c) Microsoft Corporation. All rights reserved.

Loading c:\temp\test.loadtest...
Starting execution...

Results               Top Level Tests
-------               ---------------
Error                 c:\temp\test.loadtest
0/1 test(s) Passed, 1 Error

Summary
-------
Test Run Warning.
  Error  1
  --------
  Total  1
Results file:  c:\temp\TestResults\TestUsr_TESTPC 2019-05-07 14_32_04.trx
Test Settings: Default Test Settings

Run has the following issue(s):
Visual Studio Enterprise is required to execute the test.

이벤트 로그를 보면 이런 결과도 볼 수 있습니다.

Log Name:      Application
Source:        VSTTExecution
Date:          2019-05-07 오후 4:25:41
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      TESTPC
Description:
The description for Event ID 0 from source VSTTExecution cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

(mstest.exe, PID 24268, Thread 21) ControllerExecution: Received exception calling InitializePlugin for test e77946db-2d9f-4453-b207-e1e3f83f7784: Microsoft.VisualStudio.TestTools.WebStress.LoadTestLicenseViolationException: Visual Studio Enterprise is required to execute the test.
   at Microsoft.VisualStudio.TestTools.WebStress.LoadTestUserLicenseManager.CheckForLoadTestExecution()
   at Microsoft.VisualStudio.TestTools.WebStress.LoadTestResultsCollector.Initialize(TestRun testRun, String[] agentNames)
   at Microsoft.VisualStudio.TestTools.WebStress.LoadTestControllerPlugin.Initialize(IControllerContext testContext)
   at Microsoft.VisualStudio.TestTools.Controller.ControllerPluginManager.InitializePlugin(Guid executionId)
   at Microsoft.VisualStudio.TestTools.Controller.ControllerExecution.SignalSyncStart(Object state)

The message resource is present but the message was not found in the message table

Log Name:      Application
Source:        VSTTExecution
Date:          2019-05-07 오후 4:25:41
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      TESTPC
Description:
The description for Event ID 0 from source VSTTExecution cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

(mstest.exe, PID 24268, Thread 21) WebLoadTestAdapter: Exception in LoadTestControllerPlugin.Initialize(): 

The message resource is present but the message was not found in the message table

Log Name:      Application
Source:        VSTTExecution
Date:          2019-05-07 오후 4:25:41
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      TESTPC
Description:
The description for Event ID 0 from source VSTTExecution cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

(mstest.exe, PID 24268, Thread 21) WebLoadTestAdapter: LoadTestResultsCollector: Reporting exception: Microsoft.VisualStudio.TestTools.WebStress.LoadTestLicenseViolationException: Visual Studio Enterprise is required to execute the test.
   at Microsoft.VisualStudio.TestTools.WebStress.LoadTestUserLicenseManager.CheckForLoadTestExecution()
   at Microsoft.VisualStudio.TestTools.WebStress.LoadTestResultsCollector.Initialize(TestRun testRun, String[] agentNames)

The message resource is present but the message was not found in the message table

어쨌든 중요한 것은, 현재 설치된 Enterprise 버전을 인식하지 못하는 것입니다.




원인 파악을 위해서는 오류 로그가 필요합니다. 따라서 mstest.exe.config 파일에,

[Visual Studio 2019]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\MSTest.exe.config

[Visual Studio 2017]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\MSTest.exe.config

다음의 설정을 추가합니다.

<?xml version ="1.0"?>
<configuration>
    <!-- ...[생략]... -->

    <!-- 참고: https://learn.microsoft.com/en-us/archive/blogs/aseemb/how-to-enable-test-agent-logs/ -->
    <system.diagnostics>
        <switches>
            <add name="EqtTraceLevel" value="4" />
        </switches>
        <trace autoflush="true">
            <listeners>
                <add name="eqtlistener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\Temp\TestRunner0.log"/>
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>

이제 다시 실행해 보면 C:\Temp\TestRunner0.log 파일이 생성되고 그 안에서 오류가 있다면 해결해야 합니다. 제 경우에는 다음과 같은 오류 로그가 있었습니다.

V, 16708, 1, 2019/05/07, 22:52:58.305, TESTPC\mstest.exe, WebLoadTestAdapter: LicenseHandler(): Failed to Initialize LoadTestLicense Info: System.IO.FileLoadException: Could not load file or assembly 'Microsoft.VisualStudio.Threading, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.Threading, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at Microsoft.VisualStudio.ProductLicensing.VsLicensingState.InitializeForPidAndOnlineLicensing(Object joinableTaskContext, Int32 productFamily, Guid& subscriptionLicenseId, String subscriptionRightsName, String registryRoot, IVsClientRightsTokenCacheManager clientRightsTokenCacheManager, IVsOnlineLicensingManager onlineLicensingManager)
   at Microsoft.VisualStudio.Shell.Connected.OnlineLicensing.ForNonVsClientsOnly.VsLicensingStateInitializationHelpers.CreateIVsLicensingStateForOnlineLicensingSKU(OnlineLicensingSKUs sku)
   at Microsoft.VisualStudio.TestTools.WebStress.LicenseHandler.InitializeLoadTestLicenseInfo()
   at Microsoft.VisualStudio.TestTools.WebStress.LicenseHandler..ctor()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

실제로 Microsoft.VisualStudio.Threading.dll을 확인해 보면,

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.Threading.dll

16.0.0.0 버전이 아닌 15.8.0.0 버전이 있었습니다. 그래서 mstest.exe.config에서 15.8.0.0 버전도 로드하도록 다음과 같이 bindingRedirect 항목을 조정합니다.

<?xml version ="1.0"?>
<configuration>
    <!-- ...[생략]... -->
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <!-- ...[생략]... -->
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.VisualStudio.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <!--bindingRedirect oldVersion="12.0.0.0-15.6.0.0" newVersion="15.6.0.0"/-->
                <bindingRedirect oldVersion="12.0.0.0-16.0.0.0" newVersion="15.8.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    <!-- ...[생략]... -->
</configuration>

다시 실행해 보면, C:\Temp\TestRunner0.log 파일에는 해당 오류가 발생하지 않으며 경우에 따라 더 이상 문제가 없다면 정상적으로 mstest.exe가 동작할 것입니다.




그런데, 제 경우에 그래도 동작하지 않았습니다. 재미있는 것은 TestRunner0.log 파일을 보면 다음과 같이 분명히 Enterprise 버전임을 인식했습니다.

V, 1644, 1, 2019/05/07, 23:20:38.376, TESTPC\mstest.exe, WebLoadTestAdapter: LicenseHandler.InitializeLoadTestLicenseInfo(): skuEdition: VSEDITION_Ultimate
E, 1644, 1, 2019/05/07, 23:20:38.451, TESTPC\mstest.exe, WebLoadTestAdapter: LicenseHandler.UpdateLicensingInformation(): clientrights' license is not valid.

하지만, "clientrights' license is not valid"라는 문구로 해당 라이선스가 정상적이지 않다고 합니다. 사실 이 문제의 근본 원인은 저도 모르겠습니다. 대신 이를 해결하려면 비주얼 스튜디오의 라이선스를 "제품키"를 입력하는 방법으로 전환해야 합니다. 이를 위해 "Help" / "About Microsoft Visual Studio" 메뉴를 선택하면 나오는 창에서 "License status"를 눌러,

load_test_vs_ent_required_0.png

다음과 같은 라이선스 상태 창을 띄웁니다.

load_test_vs_ent_required_1.png

위의 화면에서 "Visual Studio Enterprise 2019"의 경우 제품키 입력으로 활성화된 상태가 아니고, 아래의 "Visual Studio Enterprise 2017"은 "License Product key applied"라는 문구와 함께 제품키로 활성화되었음을 나타냅니다. 따라서 "Unlock with a Product Key" 링크를 눌러 MSDN 제품키를 입력해 줍니다.

그렇게 하고 나면 정상적으로 mstest.exe가 실행되고 로그 파일에도 licenseType을 다음과 같이 인식하는 것을 확인할 수 있습니다.

V, 1644, 1, 2019/05/07, 23:20:38.376, TESTPC\mstest.exe, WebLoadTestAdapter: LicenseHandler.InitializeLoadTestLicenseInfo(): skuEdition: VSEDITION_Ultimate
V, 28792, 1, 2019/05/07, 23:32:26.281, TESTPC\mstest.exe, WebLoadTestAdapter: LicenseHandler.UpdateLicensingInformation(): licenseType: VSLICTYPE_UnlimitedPID




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 2/15/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2019-09-12 07시00분
[Liraz] It didn't work for me
[guest]
2019-10-02 10시25분
Visual Studio 16.x 버전 업데이트 이후에는 binding 버전을 16.3.0.0으로 올려야 합니다.

<bindingRedirect oldVersion="12.0.0.0-16.3.0.0" newVersion="15.8.0.0"/>
정성태

... 166  167  168  169  170  [171]  172  173  174  175  176  177  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
733정성태5/29/200931673.NET Framework: 139. WPF - "M/d/yyyy h:mm:ss tt" 형식으로만 날짜를 출력하는 문제
732정성태5/27/200926683Team Foundation Server: 32. 팀 빌드 오류 확인 방법
731정성태5/27/200921707Team Foundation Server: 31. 팀 빌드 스케줄 확인 방법
730정성태5/26/200927239VS.NET IDE: 63. Visual Studio 2010 - Parallel Stacks [1]
729정성태5/25/200926900.NET Framework: 138. InternalsVisibleTo와 Public Key 값
728정성태5/23/200937438.NET Framework: 137. C#에서 Union 구조체 다루기파일 다운로드1
727정성태5/22/200922389오류 유형: 82. 메서드가 많은 경우 프록시 클래스 생성 실패
726정성태5/21/200921920VS.NET IDE: 62. Visual Studio 2010 Beta1 버그 피드백 - EnC기능 오류 [1]
725정성태5/21/200925204VS.NET IDE: 61. Visual Studio 2010 베타1과 Visual Studio 2008의 혼합 개발 [2]
724정성태5/19/200939317.NET Framework: 136. 자바와 닷넷의 압축 호환파일 다운로드2
723정성태5/18/200933265.NET Framework: 135. C# - Deflate, GZip, Zip
722정성태5/18/200921816개발 환경 구성: 45. SQL 서버 2008 백업 구성 [2]
721정성태5/14/200927470오류 유형: 81. Package 실행 오류 - Error 15404
720정성태5/13/200924209오류 유형: 80. SQL Server 2008 - Package 실행 오류의 구체적인 원인 확인
719정성태5/12/200925355.NET Framework: 134. WPF - XBAP을 호스팅하고 있는 인터넷 익스플로러 인터페이스 구하기파일 다운로드1
717정성태5/11/200925641개발 환경 구성: 44. VHD 파일 크기 확장하는 방법 - 두 번째 이야기
714정성태5/7/200924199Windows: 45. Windows 7 RC와 함께 공개된 Windows Virtual PC 베타
713정성태4/30/200955984오류 유형: 79. DLL 'xxxxx.dll'을(를) 로드할 수 없습니다. [1]
712정성태4/28/200928587오류 유형: 78. Windows Vista/2008에서의 MSXML4.cab 파일 배포 문제
711정성태4/27/200928187개발 환경 구성: 43. Hyper-V VHD 파일 크기 확장하는 방법
710정성태4/26/200928768.NET Framework: 133. CallbackOnCollectedDelegate was detected [4]파일 다운로드1
709정성태4/24/200924979개발 환경 구성: 42. Windows Vista SP1에서 사용 가능한 Hyper-V 관리 도구
708정성태4/23/200929877.NET Framework: 132. ClickOnce 배포를 명령행 수작업 구성파일 다운로드1
707정성태4/22/200929479개발 환경 구성: 41. Hyper-V에 Linux 설치 - SUSE Linux Enterprise Server 11
706정성태4/21/200925356.NET Framework: 131. ClickOnce - 그룹화시켜 다운로드파일 다운로드1
705정성태4/20/200920900개발 환경 구성: 40. TFS2008 SP1의 DBTier에 SQL Server 2008 SP1 설치 [1]
... 166  167  168  169  170  [171]  172  173  174  175  176  177  178  179  180  ...