Saya juga mengalami masalah ini ketika mencoba membangun plugin menggunakan Visual Studio 2017 di komputer tempat kerja saya yang berantakan. Jika Anda mencari di internet untuk "tidak dapat menemukan resgen.exe," Anda dapat menemukan semua saran ini seperti ' cukup gunakan regedit untuk mengedit Windows Registry Anda dan buat kunci baru di sini dan salin dan rekatkan isi folder ini ke dalam folder lain ini, bla bla bla. '
Saya menghabiskan berminggu-minggu hanya mengacaukan Registry Windows saya dengan regedit, mungkin menambahkan selusin sub-kunci dan copy-paste ResGen.exe ke banyak direktori yang berbeda, kadang-kadang meletakkannya di folder 'bin', kadang-kadang hanya menyimpannya di folder utama, dll.
Pada akhirnya, saya menyadari, "Hei, jika Visual Studio memberikan pesan kesalahan yang lebih terperinci, semua ini tidak akan menjadi masalah." Jadi, untuk mendapatkan rincian lebih lanjut tentang kesalahan, saya menjalankan MSBuild.exe langsung pada file * .csproj saya dari baris perintah:
"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"
Tentu saja, Anda harus mengubah detail path agar sesuai dengan situasi Anda, tetapi pastikan untuk meletakkan 1) path lengkap ke MSBuild.exe 2) path lengkap ke file * .csproj Anda 3) thefl-flp: logfile = bagian, yang akan memberitahu MSBuild untuk membuat file log dari setiap langkah yang diambil dalam proses, 4) lokasi Anda ingin file * .log disimpan dan 5); verbosity = diagnostik, yang pada dasarnya hanya memberitahu MSBuild untuk memasukkan BANYAK detail dalam file * .log.
Setelah Anda melakukan ini, build akan gagal seperti biasa, tetapi Anda akan dibiarkan dengan file * .log yang menunjukkan dengan tepat di mana MSBuild mencari file ResGen.exe Anda. Dalam kasus saya, di dekat bagian bawah file * .log, saya menemukan:
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"
Jadi pada dasarnya, MSBuild mencari di lima direktori terpisah untuk ResGen.exe, lalu menyerah. Ini adalah jenis perincian yang tidak bisa Anda dapatkan dari pesan galat Visual Studio, dan ini memecahkan masalahnya: cukup gunakan regedit untuk membuat kunci untuk salah satu dari lima lokasi tersebut , dan letakkan nilai "InstallationFolder" di kunci , yang akan menunjuk ke folder tempat ResGen.exe Anda berada (dalam kasus saya itu adalah "C: \ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools").
Jika Anda seorang humaniora besar seperti saya tanpa latar belakang di komputer, Anda mungkin tergoda untuk hanya mengedit heck keluar dari Windows Registry Anda dan salin-tempel ResGen.exe di semua tempat ketika dihadapkan dengan kesalahan seperti ini (yang merupakan tentu saja, praktik buruk). Lebih baik mengikuti prosedur yang diuraikan di atas: 1) Jalankan MSBuild.exe langsung pada file * .csproj Anda untuk mengetahui lokasi persisnya MSBuild mencari ResGen.exe lalu 2) edit Windows Registry Anda secara tepat sehingga MSBuild dapat menemukan ResGen. exe.