मुझे, मेरे भयानक रूप से गड़बड़ कार्यस्थल कंप्यूटर पर विज़ुअल स्टूडियो 2017 का उपयोग करके प्लगइन बनाने की कोशिश करते समय भी इस समस्या का सामना करना पड़ा। यदि आप "resgen.exe को खोजने में असमर्थ" के लिए इंटरनेट पर खोज करते हैं, तो आप यह सब सलाह पा सकते हैं, जैसे कि ' अपनी विंडोज़ रजिस्ट्री को संपादित करने के लिए regedit का उपयोग करें और यहां एक नई कुंजी बनाएं और इस फ़ोल्डर की सामग्री को कॉपी-पेस्ट करें। यह अन्य फ़ोल्डर, ब्ला ब्ला ब्ला। '
मैंने अपने विंडोज रजिस्ट्री को regedit के साथ खिलवाड़ करने में केवल सप्ताह बिताए, शायद एक दर्जन उप-कुंजी और कॉपी-पेस्ट किए गए ResGen.exe को कई अलग-अलग निर्देशिकाओं में जोड़ा, कभी-कभी इसे 'बिन' फ़ोल्डर में डाल दिया, कभी-कभी इसे केवल मुख्य फ़ोल्डर में रखा, आदि।
अंत में, मुझे एहसास हुआ, "अरे, अगर विज़ुअल स्टूडियो ने अधिक विस्तृत त्रुटि संदेश दिया, तो इसमें से कोई भी समस्या नहीं होगी।" इसलिए, त्रुटि पर अधिक विवरण प्राप्त करने के लिए, मैंने MSBuild.exe को सीधे अपने * .csproj फ़ाइल पर कमांड लाइन से चलाया :
"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"
बेशक, आपको अपनी स्थिति को फिट करने के लिए पथ के विवरण को बदलना होगा, लेकिन MSBuild.exe 2 के लिए 1) पूरा रास्ता सुनिश्चित करें) अपने * .csproj फ़ाइल 3) के लिए पूर्ण पथ: -fl -pp। logfile = part, जो MSBuild को इस प्रक्रिया में उठाए गए प्रत्येक चरण की एक लॉग फ़ाइल बनाने के लिए कहेगा, 4) वह स्थान जिसे आप चाहते हैं * .log फ़ाइल को सहेजा जाए और 5); वर्बोसिटी = डायग्नोस्टिक, जो मूल रूप से MSBuild बताता है। * .log फ़ाइल में विवरण के टन शामिल करने के लिए।
ऐसा करने के बाद, बिल्ड हमेशा की तरह विफल हो जाएगा, लेकिन आपको एक * .log फ़ाइल के साथ छोड़ दिया जाएगा, जहां MSBuild आपकी ResGen.exe फ़ाइल की तलाश करता है। मेरे मामले में, * .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 के लिए पांच अलग-अलग निर्देशिकाओं में देखा , फिर छोड़ दिया। यह उस तरह का विवरण है, जिसे आप Visual Studio त्रुटि संदेश से प्राप्त नहीं कर सकते हैं, और यह समस्या को हल करता है: बस उन पाँच स्थानों में से किसी एक के लिए एक कुंजी बनाने के लिए regedit का उपयोग करें , और कुंजी में "InstallationFolder" मान डालें , जो उस फ़ोल्डर को इंगित करता है जिसमें आपका ResGen.exe रहता है (मेरे मामले में यह "C: \ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 उपकरण" था)।
यदि आप कंप्यूटरों में बिना किसी पृष्ठभूमि वाले अपने आप में एक प्रमुख व्यक्ति हैं, तो आपको इस तरह की एक त्रुटि के साथ सामना करने के दौरान अपने विंडोज रजिस्ट्री और कॉपी-पेस्ट ResGen.exe को पूरी जगह संपादित करने का लालच दिया जा सकता है। बेशक, बुरा अभ्यास)। ऊपर उल्लिखित प्रक्रिया का पालन करना बेहतर है: 1) MSBuild.exe को सीधे अपने * .csproj फ़ाइल पर चलाएँ सटीक स्थान का पता लगाने के लिए MSBuild ResGen.exe की तलाश में है तो 2) अपने विंडोज रजिस्ट्री को ठीक से संपादित करें ताकि MSGuild ResGen को ढूंढ सके। प्रोग्राम फ़ाइल।