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

Visual Studio 2019 - VSIX 설치 시 "The extension cannot be installed to this product due to prerequisites that cannot be resolved." 오류 발생

XmlCodeGenerator 도구를 Visual Studio 2019 Preview에 설치하는 데 다음과 같이 회색 처리가 되어 있습니다.

vsix_prereq_vs2019preview_1.png

This extension cannot be installed to this product due to prerequisites that cannot be resolved.

반면, 로컬에 가지고 있던 vsix 파일을 직접 실행했더니 이번에는 아예 다음과 같은 오류 창이 뜹니다.

vsix_prereq_vs2019preview_2.png

Some modifications could not be applied successfully. For more information, click on the install log link at the bottom of the dialog.

XmlCodeGenerator
	This extension cannot be installed because the following references are missing: Microsoft.Net.ComponentGroup.TargetingPacks.Common

이때의 로그를 보면 다음과 같은 내용을 담고 있습니다.

...[생략]...
2019-02-14 오전 12:30:38 - Beginning to install extension to Microsoft Visual Studio Enterprise 2019...
2019-02-14 오전 12:30:40 - Install Error : Microsoft.VisualStudio.ExtensionManager.MissingReferencesException: This extension cannot be installed because the following references are missing:
-Microsoft.Net.ComponentGroup.TargetingPacks.Common (Microsoft.Net.ComponentGroup.TargetingPacks.Common)
   at Microsoft.VisualStudio.ExtensionManager.EngineUtilities.EnsureNoMissingReferences(IEnumerable`1 missingRefs)
   at Microsoft.VisualStudio.ExtensionManager.PackageInstaller.PrepareEngineInstall(IDependencyGraph dGraph, IDependencyComparisonSeed seed, Component vsCompPkg, Boolean isProductComponent, Int32& totalInstallationSteps)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.PerformSetupEngineInstall(InstallableExtensionImpl extension, Boolean installPerMachine, Boolean isPackComponent, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, IProgress`1 progress, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion, IInstalledExtension& newExtension)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallInternal(InstallableExtensionImpl extension, InstallFlags installFlags, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, IProgress`1 progress, Version targetedVsVersion)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.BeginInstall(IInstallableExtension installableExtension, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallWorker(IInstallableExtension extension, InstallFlags installFlags, AsyncOperation asyncOp)

그러니까 결국, Microsoft.Net.ComponentGroup.TargetingPacks.Common 어셈블리에 대한 참조가 Visual Studio 2019 Preview 버전에서는 없다는 것입니다.




해결 방법은 의외로 간단했습니다. 해당 의존성은 source.extension.vsixmanifest 파일에 다음과 같이 명시되어 있었는데,

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
    ...[생략]...
    <Prerequisites>
        <Prerequisite Id="Microsoft.Net.ComponentGroup.TargetingPacks.Common" Version="[15.0.26208.0,16.0)" DisplayName=".NET Framework 4 ? 4.6 development tools" />
    </Prerequisites>
</PackageManifest>"]"

Version 설정에서 세부 버전에 대한 의존성을 없앴습니다.

<Prerequisites>
    <Prerequisite Id="Microsoft.Net.ComponentGroup.TargetingPacks.Common" Version="[15.0,)" DisplayName=".NET Framework 4 ? 4.6 development tools" />
</Prerequisites>




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







[최초 등록일: ]
[최종 수정일: 2/14/2019]

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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...
NoWriterDateCnt.TitleFile(s)
13652정성태6/21/202410427닷넷: 2267. C# - Linux 환경에서 (Reflection 없이) DLL AssemblyFileVersion 구하는 방법파일 다운로드2
13651정성태6/19/20249938닷넷: 2266. C# - (Reflection 없이) DLL AssemblyFileVersion 구하는 방법파일 다운로드1
13650정성태6/18/20249925개발 환경 구성: 713. "WSL --debug-shell"로 살펴보는 WSL 2 VM의 리눅스 환경
13649정성태6/18/20249030오류 유형: 910. windbg - !py 확장 명령어 실행 시 "failed to find python interpreter" (2)
13648정성태6/17/20249703오류 유형: 909. C# - DynamicMethod 사용 시 System.TypeAccessException
13647정성태6/16/202410916개발 환경 구성: 712. Windows - WSL 2의 네트워크 통신 방법 - 세 번째 이야기 (같은 IP를 공유하는 WSL 2 인스턴스) [1]
13646정성태6/14/20249082오류 유형: 908. Process Explorer - "Error configuring dump resources: The system cannot find the file specified."
13645정성태6/13/20249236개발 환경 구성: 711. Visual Studio로 개발 시 기본 등록하는 dev tag 이미지로 Docker Desktop k8s에서 실행하는 방법
13644정성태6/12/202410287닷넷: 2265. C# - System.Text.Json의 기본적인 (한글 등에서의) escape 처리 [1]
13643정성태6/12/20249378오류 유형: 907. MySqlConnector 사용 시 System.IO.FileLoadException 오류
13642정성태6/11/20249128스크립트: 65. 파이썬 - asgi 버전(2, 3)에 따라 달라지는 uvicorn 호스팅
13641정성태6/11/20249905Linux: 71. Ubuntu 20.04를 22.04로 업데이트
13640정성태6/10/202410367Phone: 21. C# MAUI - Android 환경에서의 파일 다운로드(DownloadManager)
13639정성태6/8/20249827오류 유형: 906. C# MAUI - Android Emulator에서 "Waiting For Debugger"로 무한 대기
13638정성태6/8/20249958오류 유형: 905. C# MAUI - 추가한 layout XML 파일이 Resource.Layout 멤버로 나오지 않는 문제
13637정성태6/6/20249288Phone: 20. C# MAUI - 유튜브 동영상을 MediaElement로 재생하는 방법
13636정성태5/30/20248870닷넷: 2264. C# - 형식 인자로 인터페이스를 갖는 제네릭 타입으로의 형변환파일 다운로드1
13635정성태5/29/202410481Phone: 19. C# MAUI - 안드로이드 "Share" 대상으로 등록하는 방법
13634정성태5/24/202411041Phone: 18. C# MAUI - 안드로이드 플랫폼에서의 Activity 제어 [1]
13633정성태5/22/202410364스크립트: 64. 파이썬 - ASGI를 만족하는 최소한의 구현 코드
13632정성태5/20/20249453Phone: 17. C# MAUI - Android 내에 Web 서비스 호스팅
13631정성태5/19/202410491Phone: 16. C# MAUI - /Download 등의 공용 디렉터리에 접근하는 방법 [1]
13630정성태5/19/20249592닷넷: 2263. C# - Thread가 Task보다 더 빠르다는 어떤 예제(?)
13629정성태5/18/202410029개발 환경 구성: 710. Android - adb.exe를 이용한 파일 전송
13628정성태5/17/20249302개발 환경 구성: 709. Windows - WHPX(Windows Hypervisor Platform)를 이용한 Android Emulator 가속
13627정성태5/17/20249449오류 유형: 904. 파이썬 - UnicodeEncodeError: 'ascii' codec can't encode character '...' in position ...: ordinal not in range(128)
1  2  3  4  5  6  7  8  9  10  11  12  [13]  14  15  ...