Visual Studio 2015를 제거한 경우 Microsoft.VisualStudio.Web.PageInspector.Loader 어셈블리를 못 찾는 문제
Visual Studio 2015 CTP/RC 버전 등을 설치한 후 제거하면 웹 응용 프로그램 실행 시 다음과 같은 오류가 발생할 수 있습니다.
Server Error in '/' Application.
Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Assembly Load Trace: The following information can be helpful to determine why the assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' could not be loaded.
=== Pre-bind state information ===
LOG: DisplayName = Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///D:/PetshopTest/bin/Web/
LOG: Initial PrivatePath = D:\PetshopTest\bin\Web\bin
Calling assembly : System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: D:\PetshopTest\bin\Web\web.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/df98c974/6ff48afc/Microsoft.VisualStudio.Web.PageInspector.Loader.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/df98c974/6ff48afc/Microsoft.VisualStudio.Web.PageInspector.Loader/Microsoft.VisualStudio.Web.PageInspector.Loader.DLL.
LOG: Attempting download of new URL file:///D:/PetshopTest/bin/Web/bin/Microsoft.VisualStudio.Web.PageInspector.Loader.DLL.
LOG: Attempting download of new URL file:///D:/PetshopTest/bin/Web/bin/Microsoft.VisualStudio.Web.PageInspector.Loader/Microsoft.VisualStudio.Web.PageInspector.Loader.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/df98c974/6ff48afc/Microsoft.VisualStudio.Web.PageInspector.Loader.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/df98c974/6ff48afc/Microsoft.VisualStudio.Web.PageInspector.Loader/Microsoft.VisualStudio.Web.PageInspector.Loader.EXE.
LOG: Attempting download of new URL file:///D:/PetshopTest/bin/Web/bin/Microsoft.VisualStudio.Web.PageInspector.Loader.EXE.
LOG: Attempting download of new URL file:///D:/PetshopTest/bin/Web/bin/Microsoft.VisualStudio.Web.PageInspector.Loader/Microsoft.VisualStudio.Web.PageInspector.Loader.EXE.
Stack Trace:
[FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +36
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +340
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +21
System.Reflection.Assembly.Load(String assemblyString) +28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +94
[ConfigurationErrorsException: Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +1009
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +148
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +62
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +265
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +61
System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +173
System.Web.Compilation.BuildManager.ExecutePreAppStart() +178
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1077
[HttpException (0x80004005): Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +770
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +150
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +631
검색해 보면, 아래의 글에 해법이 나옵니다.
Could not load file or assembly 'Microsoft.VisualStudio.Web.PageInspector.Loader
; http://stackoverflow.com/questions/21829419/could-not-load-file-or-assembly-microsoft-visualstudio-web-pageinspector-loader
그래서, 아래의 경로에 있는 web.config을 '관리자 권한의 notepad.exe'에서 열어,
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config
다음의 설정을 제거해 주시면 됩니다.
<remove assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add assembly="Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
어쩌겠습니까? Visual Studio의 설치 제거가 미흡해 미처 여기까지 신경쓰지 못한 것을! ^^
또 다른 방법으로는, 제거한 CTP/RC 대신에 새 버전의 Visual Studio를 이어서 설치해 주시면 됩니다. (경험상) 사실 그게 가장 좋습니다. 왜냐하면, CTP/RC의 제거로 인해 피해를 보는 것이 저것 뿐만이 아닐 것이기 때문입니다. ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]