Mar 12, 2014
03:13 PM
The fonts are in fact in the bundle (ORCA verified) -- the files are dynamic -- as is the entire bundle. All files are installed *except* the font files.
... View more
Nov 14, 2013
04:09 PM
A fresh install with my .msi will install the the font files as expected in a sub-directory of my installation, and register them with the system. But when I upgrade my product, which is a major upgrade, we uninstall the old software, and perform an installation with the new SW -- but in doing so the font files are not installed. As mentioned in the title, I am using the upgrade table (min/max, etc.). I'm really at a loss as to why this happens. Can any one shed any light on this phenomenon?
... View more
Labels
- Labels:
-
InstallShield 2012 Spring
Jun 05, 2013
07:47 PM
Hi have a single single .ISM Basic MSI project. Under releases I have 2 different targets: 64bit, and 64bit-BETA. Each release needs to target a differently named installation directory. For example: c:\program files\MYPRODUCT and c:\program files\MYPRODUCT-BETA What's the easiest way to accomplish this? I probably have glossed over the right way to do it and got mired in the wrong way ... but what I had done was to add different release flags to each of the releases: then during the install, if BETA -- add "-BETA" to the installation directory. But I'm sure you will spot the problem right away. Changing INSTALLDIR after CostFinalize doesn't update all properties derived from INSTALLDIR (not quite sure how the UI Dialog figures out how to do it when manually changing the install directory!). Before CostFinalize, I don't know what the base (or original) installation directory is. If I could extract before CostFinalize, I'm OK with that. Thanks, Wim
... View more
Labels
- Labels:
-
InstallShield 2012 Spring
May 07, 2013
02:31 PM
I inherited a number of basic MSI projects. One of the projects, after install, has an UninstallString of "MsiExec.exe /X{productcode}" while the other one has "MsiExec.exe /I{productcode}". Can anyone tell me what controls the generation of the switch /I or /X? What wouldn't I always want /X in the uninstall string? Thanks, Wim
... View more
Labels
- Labels:
-
InstallShield 2012 Spring
Apr 04, 2013
08:45 PM
OK, Solved the major problem -- the .dll was built on a dev machine and the installshield install on a different machine -- it turns out the runtimes were not the same. So changing the linker to generate a statically linked .dll (project->properties->project defaults->Use of MFC->"Use MFC in a static library".
... View more
Apr 04, 2013
05:41 PM
I whacked the routine time to be *exactly* SetSeLogon. Using that name in my custom action still gives me the a 1723 error pop-up. Can anyone share their positive experience on putting a home built .dll into a binary table, and using a custom action to invoke the method properly? Thanks, Wim
... View more
Apr 04, 2013
04:52 PM
I put all the heavy lifting into a single C++ DLL. now there is only one function I have to call and it should be simple enough to do. I have continue the discussion here: http://community.flexerasoftware.com/showthread.php?205797-Function-entry-point-name-for-custom-C-DLL
... View more
Apr 04, 2013
04:45 PM
I have moved all the heavy lifting of some security operations into a C++ DLL. I have put the dll into a binary table in the Basic MSI. I have created a MSI type 1 custom action, Immediate Execution, to call my DLL's only function. My question is because this is a C++ DLL, the name is mangled. The definition of the function is: INT __stdcall MSIHelper::SetSeLogon( MSIHANDLE hModule ) I've tried to use demangled variants as the custom actions function name: SetSeLogin MSIHelper::SetSeLogon I've also tried a mangled name (gotten from the VS linker dump of the .dll): ?SetSeLogon@MSIHelper@@SGHK@Z None work, and all give the same 1723 pop-up error. For completeness, here is a dump of the .lib and .dll portions that are relevant: Section contains the following exports for MSIHelperDLL.dll 00000000 characteristics 515DDF7B time date stamp Thu Apr 04 13:15:55 2013 0.00 version 1 ordinal base 1 number of functions 1 number of names ordinal hint RVA name 1 0 00011019 ?SetSeLogon@MSIHelper@@SGHK@Z = @ILT+20(?SetSeLogon@MSIHelper@@SGHK@Z) And the .lib: 5 public symbols 4 ?SetSeLogon@MSIHelper@@SGHK@Z 1 __IMPORT_DESCRIPTOR_MSIHelper 2 __NULL_IMPORT_DESCRIPTOR 4 __imp_?SetSeLogon@MSIHelper@@SGHK@Z 3 ⌂MSIHelper_NULL_THUNK_DATA ... Version : 0 Machine : 14C (x86) TimeDateStamp: 515DE308 Thu Apr 04 13:31:04 2013 SizeOfData : 00000038 DLL name : MSIHelper.dll Symbol name : ?SetSeLogon@MSIHelper@@SGHK@Z (public: static int __stdcall MSIHelper::SetSeLogon(unsigned long)) Type : code Name type : name Hint : 0 Name : ?SetSeLogon@MSIHelper@@SGHK@Z Exports ordinal name ?SetSeLogon@MSIHelper@@SGHK@Z (public: static int __stdcall MSIHelper::SetSeLogon(unsigned long)) I'm not sure what other options to try. Any suggestions is appreciated. Wim
... View more
Labels
- Labels:
-
InstallShield 2012 Spring
Apr 01, 2013
11:45 AM
To create a private C++ .dll that is a wrapper to the advapi32.dll functions I want to access -- and callable from within the MSI code (.rul code)? How would this be packaged, or spec'd our in the .ism ??
... View more
Mar 25, 2013
01:04 PM
... but due to release pressures, I will not be able to incorporate IsWix anytime soon. So I am still looking to hear from the community if there is a straight InstallShield solution to the problem I am having. Regards, Wim
... View more
Mar 22, 2013
06:47 PM
So I removed the "sample" code provided in the KB article. And simply forged ahead with LsaOpenPolicy(). My prototype is: prototype INT Advapi32.LsaOpenPolicy(BYREF WSTRING, POINTER, INT, POINTER); And the windows definition is: NTSTATUS LsaOpenPolicy( _In_ PLSA_UNICODE_STRING SystemName, _In_ PLSA_OBJECT_ATTRIBUTES ObjectAttributes, _In_ ACCESS_MASK DesiredAccess, _Inout_ PLSA_HANDLE PolicyHandle ); When I execute, I get an exception 0x80020005 -- which in "type mismatch". My call is actually: POINTER pPolicy; LONG array(12); INT i; ... i = POLICY_CREATE_ACCOUNT | POLICY_LOOKUP_NAMES; nvOSResult = LsaOpenPolicy(IS_NULLSTR_PTR, array, i, pPolicy); Anyone have an idea which type is mismatching? Thanks, Wim
... View more
Mar 22, 2013
04:18 PM
I was able to catch the exception on GetUsernNameA() -- 80040703 which "Failed to find DLL function". Since http://msdn.microsoft.com/en-us/library/windows/desktop/ms724432(v=vs.85).aspx tells me GetUserName() (and it's ASCII variant) is in advapi32.dll --what gives? Is the linkage incorrect? The DLL definition is: BOOL WINAPI GetUserName( _Out_ LPTSTR lpBuffer, _Inout_ LPDWORD lpnSize ); And using the prototype: prototype BOOL Advapi32.GetUsernNameA(BYREF STRING, BYREF NUMBER); and prototype BOOL Advapi32.GetUsernNameA(BYREF STRING, BYREF INT); both fail with the same exception. Please help me stop talking to myself. Wim
... View more
Mar 22, 2013
02:10 PM
... and they gave me a link to how to get the current username: http://kb.flexerasoftware.com/selfservice/viewContent.do?externalId=Q105753 This didn't work either (and it looks so simple -- can anyone get the above to work?). I get the same kind of result -- the custom action terminates -- no other notification, no error, no ability to catch an exception. Does any one know how one might go about debugging this? Regards, Wim
... View more
Mar 22, 2013
12:42 PM
I need to set a local account right. This uses the advapi32 LsaOpenPolicy(), LookupAccountNameA(), and LsaAddAccountRights(). I cannot figure out how to accurately prototype and use these functions. I've gone through a couple of incantations, but am stymied by the very first method LsaOpenPolicy() -- the behavior is that upon making the invocation, instead of returning, the function that contains this code is exited -- if I didn't know any better, I would suspect the invocation gets an exception, trapped by IS and then cleans up. So I have very little visibility as to what is going on. This is being done inside a Basic MSI project. The prototypes (currently) look like this: prototype LONG AdvApi32.LookupAccountNameA(BYREF STRING, BYREF STRING, BYREF STRING, BYREF INT, BYREF STRING, BYREF STRING, BYREF INT); prototype LONG AdvApi32.LsaAddAccountRights(POINTER, BYREF STRING, POINTER, LONG); prototype LONG AdvApi32.LsaClose(POINTER); prototype LONG AdvApi32.LsaOpenPolicy(BYREF STRING, POINTER, LONG, POINTER); The invoking code (currently) looks like this: nvOSResult = LsaOpenPolicy(IS_NULLSTR_PTR, &array, POLICY_CREATE_ACCOUNT | POLICY_LOOKUP_NAMES, &pPolicy); if (nvOSResult == 0) then szSIDsize = 255; // lookup on local machine -- this *might* have to change? nvOSResult = LookupAccountNameA(IS_NULLSTR_PTR, szUsername, szSID, szSIDsize, IS_NULLSTR_PTR, IS_NULLSTR_PTR, szUse); if (nvOSResult != 0) then unicode(0) = "SeServiceLogonRight"; nvOSResult = LsaAddAccountRights(pPolicy, szSID, unicode, 1); if (nvOSResult != 0) then _Logger(hMSI, methodName, "Failed to add service logon rights", INFORMATION, FALSE); endif; else _Logger(hMSI, methodName, "Failed to lookup account name to establish service logon rights", INFORMATION, FALSE); endif; LsaClose(pPolicy); else _Logger(hMSI, methodName, "Failed to open the LSA policy to establish service logon rights", INFORMATION, FALSE); endif; If anyone has had any success or experience with any of the LSA functions, please show me the way! Thanks, Wim
... View more
Labels
- Labels:
-
InstallShield 2012 Spring
Feb 21, 2013
12:13 PM
Our custom actions are defined into two separate pieces. One that sets up custom action data, and then the custom action itself. I found that simply plumbing /UILevel=UIlevel in the custom action data setup and then in the logger code do: nvSize = 256; MsiGetProperty(hMSI, "UILevel", UILevelName, nvSize); if (UILevelName == "") then UILevelName = MsiGetCustomActionDataAttribute(hMSI, "/UILevel="); endif; if ((UILevelName != "2") && (msgbox)) then //silent install check SprintfBox (msgtype, msgtitle, msg); endif; It correctly functions for both normal code flow and custom actions. Regards, Wim
... View more
Latest posts by wimcolgate
Subject | Views | Posted |
---|---|---|
948 | Mar 12, 2014 03:13 PM | |
2098 | Nov 14, 2013 04:09 PM | |
3341 | Jun 05, 2013 07:47 PM | |
2283 | May 07, 2013 02:31 PM | |
1127 | Apr 04, 2013 08:45 PM | |
1127 | Apr 04, 2013 05:41 PM | |
2139 | Apr 04, 2013 04:52 PM | |
4767 | Apr 04, 2013 04:45 PM | |
2139 | Apr 01, 2013 11:45 AM | |
2139 | Mar 25, 2013 01:04 PM |
Activity Feed
- Got a Kudo for UILevel property from within a custom action. Jan 21, 2020 06:25 AM
- Posted Re: Fonts lost when using upgrade table on InstallShield Forum. Mar 12, 2014 03:13 PM
- Posted Fonts lost when using upgrade table on InstallShield Forum. Nov 14, 2013 04:09 PM
- Tagged Fonts lost when using upgrade table on InstallShield Forum. Nov 14, 2013 04:09 PM
- Tagged Fonts lost when using upgrade table on InstallShield Forum. Nov 14, 2013 04:09 PM
- Tagged Fonts lost when using upgrade table on InstallShield Forum. Nov 14, 2013 04:09 PM
- Posted Single .ISM, multiple release targets; different INSTALLDIR targets, what's best way? on InstallShield Forum. Jun 05, 2013 07:47 PM
- Tagged Single .ISM, multiple release targets; different INSTALLDIR targets, what's best way? on InstallShield Forum. Jun 05, 2013 07:47 PM
- Tagged Single .ISM, multiple release targets; different INSTALLDIR targets, what's best way? on InstallShield Forum. Jun 05, 2013 07:47 PM
- Posted UninstallString /I versus /X on InstallShield Forum. May 07, 2013 02:31 PM
- Posted run time. nothing but the run time. on InstallShield Forum. Apr 04, 2013 08:45 PM
- Posted using a .def file.... on InstallShield Forum. Apr 04, 2013 05:41 PM
- Posted Refactored the approach on InstallShield Forum. Apr 04, 2013 04:52 PM
- Posted Function entry point name for custom C++ DLL? on InstallShield Forum. Apr 04, 2013 04:45 PM
- Tagged Function entry point name for custom C++ DLL? on InstallShield Forum. Apr 04, 2013 04:45 PM
- Tagged Function entry point name for custom C++ DLL? on InstallShield Forum. Apr 04, 2013 04:45 PM
- Tagged Function entry point name for custom C++ DLL? on InstallShield Forum. Apr 04, 2013 04:45 PM
- Posted Is it possible.... on InstallShield Forum. Apr 01, 2013 11:45 AM
- Posted Thanks for the suggestion on InstallShield Forum. Mar 25, 2013 01:04 PM
- Posted Re: Security operations (LSA) on InstallShield Forum. Mar 22, 2013 06:47 PM