From: SourceForge.net <no...@so...> - 2009-06-21 20:42:16
|
Bugs item #2809308, was opened at 2009-06-19 16:50 Message generated for change (Comment added) made by ericlaw You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=373085&aid=2809308&group_id=22049 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Scripting Group: 2.0 Series Status: Closed Resolution: Wont Fix Priority: 5 Private: No Submitted By: Eric Lawrence (ericlaw) Assigned to: Nobody/Anonymous (nobody) Summary: Feature: GetDLLVersionLocal should work outside a Section Initial Comment: I want to show the version of the program being installed inside of the installer's Branding text. I don't want to have to manually update the version info every time I build the installer. The seemingly logical approach is to use GetDLLVersionLocal to grab the version information from the .EXE being installed, and then stick that info in BrandingText. Today, I can't figure out how to do that: - GetDLLVersionLocal is only available *inside* a Section - BrandingText can only be set *outside* of a Section Have I overlooked something, or would accomplishing this scenario require updating GetDLLVersionLocal to work anywhere? GetDLLVersionLocal "..\..\bin\Release\Fiddler.exe" $R0 $R1 IntOp $R2 $R0 / 0x00010000 IntOp $R3 $R0 & 0x0000FFFF IntOp $R4 $R1 / 0x00010000 IntOp $R5 $R1 & 0x0000FFFF StrCpy $0 "$R2.$R3.$R4.$R5" BrandingText "v$0" ---------------------------------------------------------------------- Comment By: Eric Lawrence (ericlaw) Date: 2009-06-21 13:42 Message: I must be missing something. I don't see how either !searchparse or !define /file would serve the same purpose, unless you're proposing that I use one of these to load my executable into memory, somehow find the offset of the binary version information, and manually parse this information out somehow. That seems implausible at best. I suppose I could add some additional tools to the build chain (e.g. http://www.codeproject.com/KB/DLL/showver.aspx) to extract this information into a plaintext file which is so-imported, but this seems hackier than it needs to be, as NSIS clearly already has the capability of getting the required information at build time. The notion that "GetDLLVersionLocal" is for only "version comparison" seems to contrast the documentation, in which a code sample is provided to convert the results of GetDLLVersion into a string. ---------------------------------------------------------------------- Comment By: Amir Szekely (kichik) Date: 2009-06-20 11:24 Message: !searchparse and !define /file were added recently exactly for this purpose. GetDLLVersionLocal is for version comparison and that's only required in sections. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=373085&aid=2809308&group_id=22049 |