msi installs cab files to desktop but activesync doesnt show app.

J

Jim

I've got a pocketpc .net app and installer msi package that works on my pc,
and some customers' pcs, but not on others.

In this examples, clicking on the msi file installs the pocketpc arm files
to a directory on the desktop, says that the install is successful, and
launches the activesync install dialog. But the application does not show
up in the activesync install dialog program list.

I'm at a loss for what the problem is.

The install log was too large to attach, some excerpts follow:

MSI (c) (38:38): Machine policy value 'DisableUserInstalls' is 0

MSI (c) (38:38): SOFTWARE RESTRICTION POLICY: Verifying package -->
'C:\Documents and Settings\Dealer.RIPSTATION01.000\My
Documents\ArqPocket2Setup.msi' against software restriction policy

MSI (c) (38:38): Note: 1: 2262 2: DigitalSignature 3: -2147287038

MSI (c) (38:38): SOFTWARE RESTRICTION POLICY: C:\Documents and
Settings\Dealer.RIPSTATION01.000\My Documents\ArqPocket2Setup.msi is not
digitally signed

MSI (c) (38:38): SOFTWARE RESTRICTION POLICY: C:\Documents and
Settings\Dealer.RIPSTATION01.000\My Documents\ArqPocket2Setup.msi is
permitted to run at the 'unrestricted' authorization level.

MSI (c) (38:38): Package to be registered: 'ArqPocket2Setup.msi'

MSI (c) (38:38): Note: 1: 2262 2: Error 3: -2147287038

MSI (c) (38:38): Note: 1: 2729

MSI (c) (38:38): Note: 1: 2262 2: AdminProperties 3: -2147287038

MSI (c) (38:38): Running product '{167C62F0-608D-4BD6-89B8-85313D2E4916}'
with user privileges: It's not assigned.

Action start 12:43:07: AppSearch.

MSI (c) (38:38): Note: 1: 2262 2: AppSearch 3: -2147287038

Action ended 12:43:07: AppSearch. Return value 1.

MSI (c) (38:38): Doing action: LaunchConditions

Action start 12:43:07: LaunchConditions.

MSI (c) (38:38): Note: 1: 2262 2: LaunchCondition 3: -2147287038

Action ended 12:43:07: LaunchConditions. Return value 1.

DEBUG: Error 2826: Control Line2 on dialog WelcomeForm extends beyond the
boundaries of the dialog to the right by 3 pixels

The installer has encountered an unexpected error installing this package.
This may indicate a problem with this package. The error code is 2826. The
arguments are: WelcomeForm, Line2, to the right

Action 12:43:07: WelcomeForm. Dialog created

MSI (s) (00:F8): File will have security applied from OpCode.

MSI (s) (00:F8): SOFTWARE RESTRICTION POLICY: Verifying package -->
'C:\Documents and Settings\Dealer.RIPSTATION01.000\My
Documents\ArqPocket2Setup.msi' against software restriction policy

MSI (s) (00:F8): Note: 1: 2262 2: DigitalSignature 3: -2147287038

MSI (s) (00:F8): Adding new sources is allowed.

MSI (s) (00:F8): Package name extracted from package path:
'ArqPocket2Setup.msi'

MSI (s) (00:F8): Package to be registered: 'ArqPocket2Setup.msi'

MSI (s) (00:F8): Note: 1: 2262 2: Error 3: -2147287038

MSI (s) (00:F8): Note: 1: 2729

MSI (s) (00:F8): Note: 1: 2262 2: AdminProperties 3: -2147287038

MSI (s) (00:F8): Executing op:
FileCopy(SourceName=ARQPOC~4.CAB|ArqPocket2_PPC.ARM.CAB,SourceCabKey=_6EAE19
7A33584BC5A69262FB40AB92CF,DestName=ArqPocket2_PPC.ARM.CAB,Attributes=512,Fi
leSize=563802,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=

58982400,,,,,,)

MSI (s) (00:F8): File: C:\Program
Files\ArqPocket2\Setup\ArqPocket2_PPC.ARM.CAB; To be installed; No patch; No
existing file

MSI (s) (00:F8): Source for file '_6EAE197A33584BC5A69262FB40AB92CF' is
compressed

InstallFiles: File: ArqPocket2_PPC.ARM.CAB, Directory: C:\Program
Files\ArqPocket2\Setup\, Size: 563802

MSI (s) (00:F8): Note: 1: 2318 2: C:\Program
Files\ArqPocket2\Setup\ArqPocket2_PPC.ARM.CAB

MSI (s) (00:F8): Note: 1: 2360

MSI (s) (00:F8): Executing op:
FileCopy(SourceName=ARQPOC~5.CAB|ArqPocket2_PPC.X86.CAB,SourceCabKey=_843107
475AD7407C9813D0689ACEB304,DestName=ArqPocket2_PPC.X86.CAB,Attributes=512,Fi
leSize=560730,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=

58982400,,,,,,)

MSI (c) (38:38): Note: 1: 2262 2: Error 3: -2147287038

MSI (c) (38:38): Product: ArqPocket2 -- Installation completed successfully.
 
G

Girish NS

Hi,

Did u check whether .net framework and activesync is installed on those
machines where ur msi file didn't work?

Girish.
 
J

Jim

Problem solved: I was using "GetCurrentDirectory" to get the path to prepend
to the Setup.ini file name.
But the current directory on the problem box was not pointing at the PC
desktop install directory.
The corrected code is included here for anyone who wants to do something
similar. (The original code that
this is a variation of came from another posting here. I apologize for not
giving proper credit - I forget where
I first saw the sample).

(Cpp file so that .NET is not needed on the desktop)

// RunActiveSync.cpp - console app for starting ActiveSync installer.
#include "stdafx.h"
#include <atlbase.h>
#include <tchar.h>
int _tmain(int argc,_TCHAR* argv[])
{
char discard[80];
char *discard2 = 0;

// locate the appManager
HKEY hkey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("software\\Microsoft\\Windows\\CurrentVersion\\App
Paths\\CEAppMgr.exe"),
0, KEY_READ, &hkey) != ERROR_SUCCESS)
{
printf("Unable to find Registry entry for CEAppMgr. Press return to
continue.");
discard2 = gets(discard); // pause for user to read message
return 1; // unable to find app manager
}

DWORD dwDataSize = MAX_PATH+1;
DWORD dwType = REG_SZ;
TCHAR szPath[MAX_PATH+1];
TCHAR szCurPath[MAX_PATH +1];
TCHAR szParams[MAX_PATH * 2 + 2];

if (ReqQueryValueEx(hkey, NULL, NULL, &dwType,
(PBYTE)szPath, &dwDataSize) != ERROR_SUCCESS)
{
printf("Registry retrieval failed for CEAppMgr. Press return to
continue.");
discard2 = gets(discard);
return 2;
}

// get the setup.ini path based on this programs path
szCurPath[0] = TCHAR(0);
_tcscat(szCurPath,argv[0];
int i = 0;
for (i = _tcslen(szCurPath)-1;
(i > 0 && szCurPath != '/' && szCurPath != '\\');
i--)
;
szCurPath = TCHAR(0);

// initialize parms to null string, for install , add the setup.ini file
parm
szParams[0] = TCHAR(0);
if (argc >= 2 && strcmp(argv[1],"/Install)==0)
{
_tcscat(szParams,TEXT("\""); // add quotes in case path has spaces in
it
_tcscat(szParams, szCurPath);
_tcscat(szParams,TEXT(\\Setup.ini\));
}

// run CEAppMgr
HINSTANCE hInstance = 0;
SHELLEXECUTEINFO exinfo;
exinfo.cbSize = sizeof(exinfo);
exinfo.fMask = 0;
exinfo.hwnd = NULL;
exinfo.lpVerb=NULL;
exinfo.lpFile=szPath;
exinfo.nShow=SW_SHOWDEFAULT;
exinfo.lpParameters=szParams;
exinfo.lpDirectory=NULL;
exinfo.hInstApp=hInstance;
if (!ShellExecuteEx(&exinfo))
{
printf("Shell Execute of CEAppMgr failed. Press return to continue.");
discard2 = gets(discard);
return 3;
}
return 0; // success
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top