나도 엉망인 직장 컴퓨터에서 Visual Studio 2017을 사용하여 플러그인을 만들려고 할 때이 문제가 발생했습니다. 인터넷에서 "resgen.exe를 찾을 수 없습니다"를 검색하면 ' regedit를 사용하여 Windows 레지스트리를 편집하고 여기에 새 키를 만들고이 폴더의 내용을 복사하여 붙여 넣는 것과 같은 모든 조언을 찾을 수 있습니다. 이 다른 폴더, blah blah blah. '
regedit로 Windows 레지스트리를 엉망으로 만드는 데 몇 주가 걸렸을 것입니다. 아마도 수십 개의 하위 키를 추가하고 ResGen.exe를 여러 다른 디렉토리에 복사하여 때로는 'bin'폴더에 넣고 때로는 메인 폴더에 보관합니다. 기타
결국 "저는 Visual Studio에 더 자세한 오류 메시지가 표시되면 문제가되지 않습니다"라고 깨달았습니다. 따라서 오류에 대한 자세한 내용을 얻으려면 명령 줄에서 * .csproj 파일에서 MSBuild.exe를 직접 실행했습니다 .
"C:/Windows/Microsoft.NET/Framework/v4.0.3.0319/MSBuild.exe C:/Users/Todd/Plugin.csproj -fl -flp:logfile="C:/Users/Todd/Desktop/error_log.log";verbosity=diagnostic"
물론 상황에 맞게 경로 세부 정보를 변경해야하지만 1) MSBuild.exe의 전체 경로 2) * .csproj 파일의 전체 경로 3) -fl -flp : logfile = 부분, MSBuild가 프로세스에서 수행 한 각 단계의 로그 파일을 작성하도록 지시합니다. 4) * .log 파일을 저장하려는 위치와 5); verbosity = diagnostic, 기본적으로 MSBuild에 지시합니다. * .log 파일에 TONS 세부 사항을 포함합니다.
이렇게하면 빌드가 항상 실패하지만 MSBuild가 ResGen.exe 파일을 찾은 위치 를 정확하게 나타내는 * .log 파일이 남게됩니다. 필자의 경우 * .log 파일의 맨 아래 근처에서 다음을 발견했습니다.
Compiling plug-in resources (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.1a\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.0a\WinSDK-NetFx40Tools-x86 (Task ID:41)
MSBUILD: error : Failed to locate ResGen.exe and unable to compile plug-in resource file "C:/Users/Todd/PluginResources.resx"
따라서 기본적으로 MSBuild는 ResGen.exe에 대해 5 개의 별도 디렉터리 를 찾은 다음 포기했습니다. 이것은 Visual Studio 오류 메시지에서 얻을 수없는 종류의 세부 사항이며 문제를 해결합니다. 간단히 regedit를 사용하여 다섯 위치 중 하나에 대한 키를 만듭니다. "InstallationFolder"값을 키에 넣습니다. 이 파일은 ResGen.exe가있는 폴더를 가리켜 야합니다 (내 경우에는 "C : \ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 도구").
컴퓨터에 배경 지식이없는 나와 같은 인문학을 전공한다면 Windows 레지스트리에서 지옥을 편집하고 다음과 같은 오류가 발생했을 때 ResGen.exe를 복사하여 붙여 넣기 만하면됩니다. 물론, 나쁜 습관). 1) * .csproj 파일에서 직접 MSBuild.exe를 실행하여 MSBuild가 ResGen.exe를 찾는 정확한 위치를 찾은 다음 2) MSBuild가 ResGen을 찾을 수 있도록 Windows 레지스트리를 정확하게 편집하십시오. exe.