regsvcs 등록 시 0x80040153 오류
오랜만에 regsvcs.exe를 사용할 일이 있었는데요. 근데, 이런 오류가 떨어졌습니다.
d:\TestApp\bin\Debug>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regsvcs.exe TestApp.dll
Unhandled Exception: System.Runtime.InteropServices.COMException (0x80040153): Invalid value for registry (Exception from HRESULT: 0x80040153 (REGDB_E_INVALIDVALUE))
at System.Runtime.InteropServices.RuntimeEnvironment.GetDeveloperPath()
at System.AppDomain.SetupFusionStore(AppDomainSetup info)
at System.AppDomain.SetupDomain(Boolean allowRedirects, String path, String configFile)
DEVPATH와 관련된 듯 한데 다음의 글에 자세한 사용법이 나와 있습니다.
How to: Locate Assemblies by Using DEVPATH
; https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/how-to-locate-assemblies-by-using-devpath
제 경우에 DEVPATH가 모두 "C:\ProgramData\Red Gate\.NET Reflector\DevPath" 경로로 설정되어 있었는데요. .NET Reflector가 설치되면서 컴퓨터의 machine.config에 developerInstallation 설정까지 강제로 넣어두는 것이 문제의 발단이었습니다.
<runtime>
<developmentMode developerInstallation="true" />
</runtime>
구체적으로 어떤 충돌이었는지 원인은 못찾았는데요. 일단, machine.config을 .NET 2.0/4.0, x86/x64별로 각각 찾아서 위의 설정을 해제하는 것으로 해결했습니다.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CONFIG\machine.config
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]