Ben de bu sorunla korkunç derecede karışık iş yeri bilgisayarımda Visual Studio 2017 kullanarak bir eklenti oluşturmaya çalışırken karşılaştım. İnternette "resgen.exe bulunamıyor" şeklinde arama yaparsanız, ' Windows Kayıt Defterinizi düzenlemek için regedit'i kullanın ve burada yeni bir anahtar oluşturun ve bu klasörün içeriğini kopyalayıp içine yapıştırın ' gibi tüm bu önerileri bulabilirsiniz . bu diğer klasör, blah blah blah. '
Regedit ile Windows Kayıt Defterimi karıştırarak haftalar geçirdim, muhtemelen bir düzine alt anahtar ekledim ve ResGen.exe'yi birçok farklı dizine kopyalayıp yapıştırdım, bazen bir 'bin' klasörüne koydum, bazen sadece ana klasörde tuttum. vb.
Sonunda, "Hey, eğer Visual Studio daha ayrıntılı bir hata mesajı verseydi, bunların hiçbiri sorun olmazdı." Bu nedenle, hatayla ilgili daha fazla ayrıntı almak için, MSBuild.exe'yi doğrudan * .csproj dosyamda komut satırından çalıştırdım:
"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"
Elbette, durumunuza uyacak şekilde yol ayrıntılarını değiştirmeniz gerekecektir, ancak 1) MSBuild.exe'nin tam yolunu 2) * .csproj dosyanızın tam yolunu 3) -fl -flp'yi koyduğunuzdan emin olun: logfile = part, MSBuild'e işlemde attığı her adım için bir günlük dosyası oluşturmasını söyleyecek, 4) * .log dosyasının kaydedilmesini istediğiniz konum ve 5); ayrıntı = tanılama, temelde sadece MSBuild'e söyler * .log dosyasına TONS ayrıntı eklemek için.
Bunu yaptıktan sonra, yapı her zamanki gibi başarısız olur, ancak MSBuild'in ResGen.exe dosyanızı tam olarak nerede aradığını gösteren bir * .log dosyası kalır. Benim durumumda, * .log dosyasının altına yakın bir yerde şunu buldum:
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"
Temelde MSBuild , ResGen.exe için beş ayrı dizine baktı ve sonra pes etti. Bu, Visual Studio hata mesajından alamayacağınız türden ayrıntıdır ve sorunu çözer: bu beş konumdan herhangi biri için bir anahtar oluşturmak için regedit'i kullanın ve anahtara "InstallationFolder" değerini girin , ResGen.exe dosyanızın bulunduğu klasörü göstermelidir (benim durumumda "C: \ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools" idi).
Bilgisayarlarda arka planı olmayan benim gibi bir beşeri bilimler öğrencisiyseniz, Windows Kayıt Defterinizden düzenlemeyi yapmak ve bunun gibi bir hatayla karşılaştığınızda ResGen.exe'yi kopyalayıp yapıştırmak isteyebilirsiniz. tabii ki kötü uygulama). Yukarıda özetlenen prosedürü takip etmek daha iyidir: 1) MSBuild'in ResGen.exe'yi aradığı tam konumu bulmak için doğrudan * .csproj dosyanızda MSBuild.exe'yi çalıştırın, ardından 2) MSBuild'in ResGen'i bulabilmesi için Windows Kayıt Defterinizi tam olarak düzenleyin. exe.