error MSB3103: Invalid Resx file. Could not load file or assembly 'System.Windows.Forms, ...' or one of its dependencies.
잘 되던 빌드가 어느 날 다음과 같은 오류를 냅니다.
D:\MySrc\Sources\bin>msbuild "..\Test\TestApp.csproj" /property:Platform=AnyCPU;Configuration=Release /t:Rebuild
Microsoft (R) Build Engine version 15.3.409.57025 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 2018-03-05 오후 4:08:28.
Project "D:\MySrc\Sources\Test\TestApp.csproj" on node 1 (Rebuild target(s)).
CoreClean:
Deleting file "D:\MySrc\Sources\Setup\TestApp\obj\Release\TestApp.csprojResolveAssemblyReference.cache".
Deleting file "D:\MySrc\Sources\Setup\TestApp\obj\Release\TestApp.csproj.GenerateResource.Cache".
CoreResGen:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\Resgen.exe" /useSourcePath /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\CustomMars
halers.dll /r:D:\MySrc\Sources\Libraries\Microsoft.Web.Administration.dll /r:D:\MySrc\Sources\Libraries\Microsoft.W
eb.Management.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dl
l /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServi
ces.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /r:C:\W
indows\Microsoft.NET\Framework\v2.0.50727\System.ServiceProcess.dll /r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /
r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /compile TestDlg.resx,obj\Release\TestApp.TestDlg.resources
MainForm.resx,obj\Release\TestApp.MainForm.resources
Processing resource file "TestDlg.resx" into "obj\Release\TestApp.TestDlg.resources".
D:\MySrc\Sources\Setup\TestApp\TestDlg.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'Syst
em.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exceptio
n from HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
Processing resource file "MainForm.resx" into "obj\Release\TestApp.MainForm.resources".
D:\MySrc\Sources\Setup\TestApp\MainForm.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'System.Wi
ndows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception fro
m HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
Done Building Project "D:\MySrc\Sources\Test\TestApp.csproj" (Rebuild target(s)) -- FAILED.
Build FAILED.
"D:\MySrc\Sources\Test\TestApp.csproj" (Rebuild target) (1) ->
(CoreResGen target) ->
D:\MySrc\Sources\Setup\TestApp\TestDlg.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'Sy
stem.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Except
ion from HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
D:\MySrc\Sources\Setup\TestApp\MainForm.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'System.
Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception f
rom HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
0 Warning(s)
2 Error(s)
Time Elapsed 00:00:00.96
오류만 정리하면 다음과 같습니다.
D:\MySrc\Sources\Setup\TestApp\TestDlg.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
D:\MySrc\Sources\Setup\TestApp\MainForm.resx : error MSB3103: Invalid Resx file. Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE)) [D:\MySrc\Sources\Test\TestApp.csproj]
당연히 2.0 버전의 System.Windows.Forms.dll 또는 그것이 의존하는 모듈이 존재하지 않는다는 것이 말이 안 됩니다. 경험상, 이럴 때는 부팅이 보류 중인 윈도우 업데이트가 있는지 확인해야 합니다. 만약 있다면 마저 업데이트 설치를 끝내주고 재부팅하면 됩니다. 실제로 저 문제는 윈도우 업데이트 완료 후 재부팅을 하고 나서 정상적으로 다시 빌드가 되었습니다. ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]