We have a bug where #setVariable:value: does not seem to
have any effect in the runtime even though it works perfectly in the development
environment and in the RTP test environment. We did notice that on Windows XP OSSystemSupport concreteClass
returns WinNTSystemSupport. However in defaultPCClassesDeleted WinNTSystemSupport is marked for remove by default with
a comment that this class is only needed for VW3! This seems strange. Could
this be the problem? Anyone else encounter and solve this? Joerg |
The Coding Contest has been extended until the 19th of April. While there was a lot of interest in the contest, many people complained that they could not do it in the time-frame allotted. Unfortunately, this means we only got a few submissions on the 9th of April. Because of this, the STIC Board has decided to extend the contest until the 19th of April. If you wish to participate, just drop me an email (michael.lucas-smith dontspam _at_ softwarewithstyle.com). Those who did complete have been granted finalist status and will compete at Smalltalk Solutions. These two finalists, of course, are allowed to continue to refine their program. This means there is one slot left open - so get in and compete for this last position. If you were unable to complete the contest due to time constraints, now is your chance. Best of Luck, Michael Lucas-Smith |
In reply to this post by Joerg Beekmann, DeepCove Labs (YVR)
Joerg Beekmann wrote:
> > We have a bug where #setVariable:value: does not seem to have any > effect in the runtime even though it works perfectly in the > development environment and in the RTP test environment. > > > > We did notice that on Windows XP OSSystemSupport concreteClass returns > WinNTSystemSupport. However in defaultPCClassesDeleted > > WinNTSystemSupport is marked for remove by default with a comment > that this class is only needed for VW3! This seems strange. Could this > be the problem? Anyone else encounter and solve this > Joerg, I've had a similar problem. It may have to do with the registry key used to store "environment" variables on Windows. By default, it is something like #('SOFTWARE' 'Cincom Systems, Inc.' 'VisualWorks'), which might not be appropriate for a sealed runtime. You might want to have a look at WinNTSystemSupport>>currentVersion: and perhaps set the shared variable CurrentVeresion to something else for your runtime. I'm doing this in order to have the development images not conflict with runtimes I'm testing on the same machine. My code is like this: updateVersionRegistryPath "This should be run as the first thing after runtime startup" Win95SystemSupport.CurrentVersion := (self isRuntime ifTrue:[ Array with: 'SOFTWARE' with: Main productClass companyName with: Main productClass productFamily with: Main productClass releaseBlessing ] ifFalse:[ #('SOFTWARE' 'Cincom Systems, Inc.' 'VisualWorks'), (Array with: self imageVersion) ]). Maybe it helps. Andre |
I did not try this, because many locations in the code seem to refer
to this variable. I just add another "root" variable, similar to Andre's naming (companyname, appname, version) according to the following scheme (of course using env vars on other platforms than Windows): [HKEY_CURRENT_USER [Manufacturer] [ProductName] [ProductVersion] ##.##.## HKEY_LOCAL_MACHINE [Manufacturer] [ProductName] [ProductVersion] ##.##.## Company [CompanyName] Email [EMAIL] InstallDate [Date] LogonUser [LogonUser] ProductID [ProductID] [ProductName] [TARGETDIR] User [USERNAME] Cincom Systems, Inc. VisualWorks 7.4 [ProductName] [TARGETDIR] This is also the scheme I employ when using VisualStudio to generate installer packages for Windows. Works like a charm, do not need to change system code, can use SystemUtils to get the values, etc. Especially the path to the installation folder is needed in my apps, and this way I can store it easily. BTW I also employ an .ini file to store some application specific values (like the last window size and location, path to some user folders etc.). This is not appropriate to store inside the image, and I do not need to save the image this way. As you will notice I added some extra info like user name, logon user name etc. 2006/4/13, Andre Schnoor <[hidden email]>: > Joerg Beekmann wrote: > > > > We have a bug where #setVariable:value: does not seem to have any > > effect in the runtime even though it works perfectly in the > > development environment and in the RTP test environment. > > > > > > > > We did notice that on Windows XP OSSystemSupport concreteClass returns > > WinNTSystemSupport. However in defaultPCClassesDeleted > > > > WinNTSystemSupport is marked for remove by default with a comment > > that this class is only needed for VW3! This seems strange. Could this > > be the problem? Anyone else encounter and solve this > > > > Joerg, > > I've had a similar problem. It may have to do with the registry key used > to store "environment" variables on Windows. By default, it is something > like #('SOFTWARE' 'Cincom Systems, Inc.' 'VisualWorks'), which might not > be appropriate for a sealed runtime. > > You might want to have a look at WinNTSystemSupport>>currentVersion: and > perhaps set the shared variable CurrentVeresion to something else for > your runtime. I'm doing this in order to have the development images not > conflict with runtimes I'm testing on the same machine. My code is like > this: > > updateVersionRegistryPath > "This should be run as the first thing after runtime startup" > Win95SystemSupport.CurrentVersion := (self isRuntime > ifTrue:[ > Array > with: 'SOFTWARE' > with: Main productClass companyName > with: Main productClass productFamily > with: Main productClass releaseBlessing ] > ifFalse:[ > #('SOFTWARE' 'Cincom Systems, Inc.' 'VisualWorks'), > (Array with: self imageVersion) ]). > > > Maybe it helps. > Andre > > > |
In reply to this post by Joerg Beekmann, DeepCove Labs (YVR)
I think that's a symptom of that method not being updated in quite a
while, and VW3-only really means VW3 or later. That list of classes is
what would be deleted if you told it you didn't need Windows support, so
I doubt that that's relevant in this case.
At 07:03 PM 4/11/2006, Joerg Beekmann wrote: We have a bug where #setVariable:value: does not seem to have any effect in the runtime even though it works perfectly in the development environment and in the RTP test environment. --
Alan Knight [|], Cincom Smalltalk Development
"The Static Typing Philosophy: Make it fast. Make it right.
Make it run." - Niall Ross
|
Free forum by Nabble | Edit this page |