Sunday 15 April 2012

nsis - Files installed to C:\ instead of C:\folder\ -


मेरा इंस्टॉलर अनइंस्टॉल करना। स्थापना और / अस्थायी / निर्देशिका को संस्थापन फ़ोल्डर में प्रतिलिपि बनाता है (मेरे लिए यह सी है: \ MyExample), लेकिन MyExample.dll / ICO / exe, और सफलता / error.wav को सीधे सी में कॉपी किया जाता है: \ और मुझे यह काम नहीं मिल रहा है।

 ! "MUI2.nsh" शामिल करें; सामान्य समारोह .onInit ReadEnvStr $ R0 SYSTEMDRIVE strcpy $ INSTDIR `$ R0 \ MyExample \` FunctionEnd नाम "MyExample" outfile "Setup.exe" RequestExecutionLevel व्यवस्थापक; ------------------- ! ------------- MUI_ABORTWARNING परिभाषित MUI_FINISHPAGE_RUN परिभाषित MUI_FINISHPAGE_RUN_FUNCTION परिभाषित "LaunchLink" MUI_FINISHPAGE_SHOWREADME परिभाषित "डेस्कटॉप शॉर्टकट" को परिभाषित MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction बनाएँ!! "MUI_FINISHPAGE_SHOWREADME_NOTCHECKED परिभाषित MUI_FINISHPAGE_SHOWREADME_TEXT परिभाषित!";! ---- ----------------------------; पेज! सम्मिलित करें MUI_PAGE_WELCOME! Insertmacro MUI_PAGE_LICENSE "$ {NSISDIR} \ डॉक्स \ आधुनिक UI \ License.txt "! सम्मिलित करें MUI_PAGE_DIRECTORY! Insertmacro MUI_ PAGE_INSTFILES insertmacro MUI_PAGE_FINISH insertmacro MUI_UNPAGE_WELCOME insertmacro MUI_UNPAGE_CONFIRM insertmacro MUI_UNPAGE_INSTFILES insertmacro MUI_UNPAGE_FINISH;!!!! --------------------------------; भाषाएं! सम्मिलित करें MUI_LANGUAGE "अंग्रेजी"; --------------------------------; इंस्टालर अनुभाग अनुभाग "डमी अनुभाग" सेक डमी फ़ाइल "MyExample.exe" फ़ाइल "MyExample.ico" फ़ाइल "error.wav" फ़ाइल "success.wav" फ़ाइल "MyExample.dll" CreateDirectory $ INSTDIR \ अस्थायी SetOutPath "$ INSTDIR" WriteRegStr HKCU "सॉफ्टवेयर \ MyExample" "" $ INSTDIR ; बनाएं अनइंस्टॉलर WriteUninstaller "$ INSTDIR \ Uninstall.exe" WriteRegStr HKLM "सॉफ्टवेयर \ Microsoft \ Windows \ CurrentVersion \ स्थापना रद्द करें \ उत्पाद \ MyExample" \ "MyExample" "$ \" $ INSTDIR \ uninstall.exe $ \ "" SectionEnd धारा " स्थापना रद्द करें "# हमेशा अनइंस्टॉलर पहले उसे हटा नहीं हटाना $ INSTDIR \ uninstall.exe $ INSTDIR \ MyExample.exe $ INSTDIR \ MyExample.ico $ INSTDIR \ हटाना हटाना error.wav $ INSTDIR \ $ INSTDIR हटाना success.wav हटाना हटाना \ MyExample.dll SectionEnd ; ----------- ---------------------; विवरण LangString DESC_SecDummy $ {LANG_ENGLISH} "सेटअप" MUI_FUNCTION_DESCRIPTION_BEGIN insertmacro insertmacro MUI_DESCRIPTION_TEXT $ {SecDummy} $ (DESC_SecDummy) insertmacro MUI_FUNCTION_DESCRIPTION_END!!; --------------------------------; अनइंस्टालर अनुभाग अनुभाग "अनइंस्टॉल करें" "$ INSTDIR \ uninstall.exe" को नष्ट करें "RMDir" $ INSTDIR "DeleteRegKey / ifempty HKCU" सॉफ्टवेयर \ MyExample "SectionEnd Function LaunchLink ExecShell" "" $ INSTDIR \ MyExample.exe "फ़ंक्शनएण्ड फ़ंक्शन ख़ाली पृष्ठीकरण CreateShortcut" $ desktop \ MyExample.lnk "" $ instdir \ MyExample.exe "WriteRegStr HKEY_CURRENT_USER" सॉफ़्टवेयर \ Microsoft \ Windows \ CurrentVersion \ रन \ "MyExample.exe" "$ INSTDIR \ MyExample.exe" फ़ंक्शन एन्ड    

अपने डमी अनुभाग अनुभाग में, आप गंतव्य निर्देशिका को बताए बिना कुछ फ़ाइलों को स्थापित कर रहे हैं। मुझे लगता है कि निहित अर्थ $ INSTDIR है, लेकिन आपको स्पष्ट होना चाहिए क्योंकि एक अनुभाग संभवतः या चयनित नहीं हो सकता है (जब आपके कई अनुभाग होते हैं), और उन्हें पहले निष्पादित वर्गों के साइड इफेक्ट पर भरोसा नहीं करना चाहिए (यदि कभी हो)।

  SetOutPath $ INSTDIR    

कोड>

No comments:

Post a Comment