From: Ciaran O''Donnell on
On reflection, you could possibly make the app a self extracting zip file
which extracts the EXE and a settings file and then starts the app, then when
you app closes, it can repack the settings file and itself into the exe. You
would probably want a tool for this bit which could be in the zip too.
So the app isnt single exe when running but when not running, it is.
Just an idea for you to think about.
Another option would possibly be to figure out whether you can access any
part of the exe file directly and modify some of it. Possibly add a few bytes
at the end which you can treat as structure storage and write the settings
to. I dont remember if the framework will checksum the exe when it loads it
or if this only happens for strong named assemblies.



--
Ciaran O''Donnell
http://wannabedeveloper.spaces.live.com


"Claire" wrote:

> Hi,
> I'm trying to test a deployment of my application on a Vista enterprise
> machine
> The deployment project was built within Visual Studio 2008
> One of its prerequisites is that Crystal Reports basic that comes with VS is
> installed, and this is installed from the local machine.
> On my "cleanish" vista pc, setup detects that Crystal reports is not
> installed so attempts to install it for me.
> After a few seconds, installation of Crystal Reports fails with error code
> 1603.
> I'm running setup as administrator.
>
> The following is a copy of the log file produced.
> Anyone any ideas as to what it going wrong here and how i can fix it please?
>
> Claire
>
> The following properties have been set:
> Property: [AdminUser] = true {boolean}
> Property: [ProcessorArchitecture] = Intel {string}
> Property: [VersionNT] = 6.0.1 {version}
> Running checks for package '.NET Framework 2.0 (x86)', phase BuildList
> Running external check with command
> 'C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\DotNetFX\dotnetchk.exe' and
> parameters ''
> Process exited with code 1
> Setting value '1 {int}' for property 'DotNetInstalled'
> Reading value 'Version' of registry key 'HKLM\Software\Microsoft\Internet
> Explorer'
> Read string value '7.0.6001.18000'
> Setting value '7.0.6001.18000 {string}' for property 'IEVersion'
> The following properties have been set for package '.NET Framework 2.0
> (x86)':
> Property: [DotNetInstalled] = 1 {int}
> Property: [IEVersion] = 7.0.6001.18000 {string}
> Running checks for command 'DotNetFX\instmsia.exe'
> Result of running operator 'ValueExists' on property 'VersionNT': true
> Result of checks for command 'DotNetFX\instmsia.exe' is 'Bypass'
> Running checks for command 'DotNetFX\WindowsInstaller-KB893803-v2-x86.exe'
> Result of running operator 'ValueExists' on property 'Version9x': false
> Result of running operator 'VersionLessThan' on property 'VersionNT' and
> value '5.0.3': false
> Result of running operator 'VersionGreaterThanOrEqualTo' on property
> 'VersionMsi' and value '3.0': true
> Result of checks for command 'DotNetFX\WindowsInstaller-KB893803-v2-x86.exe'
> is 'Bypass'
> Running checks for command 'DotNetFX\dotnetfx.exe'
> Result of running operator 'ValueNotEqualTo' on property 'DotNetInstalled'
> and value '0': true
> Result of checks for command 'DotNetFX\dotnetfx.exe' is 'Bypass'
> '.NET Framework 2.0 (x86)' RunCheck result: No Install Needed
> Running checks for package 'Crystal Reports Basic for Visual Studio 2008
> (x86, x64)', phase BuildList
> Running MsiProductCheck with ProductCode
> '{AA467959-A1D6-4F45-90CD-11DC57733F32}'
> MsiQueryProductState returned '-1'
> Setting value '-1 {int}' for property 'CRVSInstalled'
> Running MsiProductCheck with ProductCode
> '{CE26F10F-C80F-4377-908B-1B7882AE2CE3}'
> MsiQueryProductState returned '-1'
> Setting value '-1 {int}' for property 'CRVSRunTimex86Installed'
> Running MsiProductCheck with ProductCode
> '{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. '
> MsiQueryProductState returned '-2'
> Setting value '-2 {int}' for property 'CRVSRunTimex64Installed'
> The following properties have been set for package 'Crystal Reports Basic
> for Visual Studio 2008 (x86, x64)':
> Property: [CRVSInstalled] = -1 {int}
> Property: [CRVSRunTimex64Installed] = -2 {int}
> Property: [CRVSRunTimex86Installed] = -1 {int}
> Running checks for command 'CrystalReports10_5\CRRedist2008_x86.msi'
> Result of running operator 'ValueNotEqualTo' on property
> 'ProcessorArchitecture' and value 'Intel': false
> Result of running operator 'ValueGreaterThan' on property 'CRVSInstalled'
> and value '0': false
> Result of running operator 'ValueGreaterThan' on property
> 'CRVSRunTimex86Installed' and value '0': false
> Result of running operator 'ValueEqualTo' on property 'AdminUser' and value
> 'false': false
> Skipping FailIf because Property 'Version9x' was not defined
> Result of running operator 'VersionLessThan' on property 'VersionNT' and
> value '5.00': false
> Result of checks for command 'CrystalReports10_5\CRRedist2008_x86.msi' is
> 'Install'
> Running checks for command 'CrystalReports10_5\CRRedist2008_x64.msi'
> Result of running operator 'ValueNotEqualTo' on property
> 'ProcessorArchitecture' and value 'AMD64': true
> Result of checks for command 'CrystalReports10_5\CRRedist2008_x64.msi' is
> 'Bypass'
> 'Crystal Reports Basic for Visual Studio 2008 (x86, x64)' RunCheck result:
> Install Needed
> EULA for components 'Crystal Reports Basic for Visual Studio 2008 (x86,
> x64)' was accepted.
> Copying files to temporary directory
> "C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\"
> Copying from 'C:\Temp\Installer\CrystalReports10_5\CRRedist2008_x86.msi' to
> 'C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\CrystalReports10_5\CRRedist2008_x86.msi'
> Verifying file integrity of
> C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\CrystalReports10_5\CRRedist2008_x86.msi
> WinVerifyTrust returned 0
> File trusted
> Running checks for package 'Crystal Reports Basic for Visual Studio 2008
> (x86, x64)', phase BeforePackage
> Running MsiProductCheck with ProductCode
> '{AA467959-A1D6-4F45-90CD-11DC57733F32}'
> MsiQueryProductState returned '-1'
> Setting value '-1 {int}' for property 'CRVSInstalled'
> Running MsiProductCheck with ProductCode
> '{CE26F10F-C80F-4377-908B-1B7882AE2CE3}'
> MsiQueryProductState returned '-1'
> Setting value '-1 {int}' for property 'CRVSRunTimex86Installed'
> Running MsiProductCheck with ProductCode
> '{2BFA9B05-7418-4EDE-A6FC-620427BAAAA3}. '
> MsiQueryProductState returned '-2'
> Setting value '-2 {int}' for property 'CRVSRunTimex64Installed'
> The following properties have been set for package 'Crystal Reports Basic
> for Visual Studio 2008 (x86, x64)':
> Property: [CRVSInstalled] = -1 {int}
> Property: [CRVSRunTimex64Installed] = -2 {int}
> Property: [CRVSRunTimex86Installed] = -1 {int}
> Running checks for command 'CrystalReports10_5\CRRedist2008_x86.msi'
> Result of running operator 'ValueNotEqualTo' on property
> 'ProcessorArchitecture' and value 'Intel': false
> Result of running operator 'ValueGreaterThan' on property 'CRVSInstalled'
> and value '0': false
> Result of running operator 'ValueGreaterThan' on property
> 'CRVSRunTimex86Installed' and value '0': false
> Result of running operator 'ValueEqualTo' on property 'AdminUser' and value
> 'false': false
> Skipping FailIf because Property 'Version9x' was not defined
> Result of running operator 'VersionLessThan' on property 'VersionNT' and
> value '5.00': false
> Result of checks for command 'CrystalReports10_5\CRRedist2008_x86.msi' is
> 'Install'
> 'Crystal Reports Basic for Visual Studio 2008 (x86, x64)' RunCheck result:
> Install Needed
> Verifying file integrity of
> C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\CrystalReports10_5\CRRedist2008_x86.msi
> WinVerifyTrust returned 0
> File trusted
> Installing using command 'C:\Windows\system32\msiexec.exe' and parameters
> ' -I
> "C:\Users\Claire\AppData\Local\Temp\VSD67F6.tmp\CrystalReports10_5\CRRedist2008_x86.msi"
> -q /norestart'
> Will attempt to elevate process.
> Process exited with code 1603
> Status of package 'Crystal Reports Basic for Visual Studio 2008 (x86, x64)'
> after install is 'InstallFailed'
>