When running the -build command with TMS Smart setup, the license information for Webcore is removed from the registry, forcing a manual use of the license generator in the Bin directory to remedy the issue. It should also be noted that from the IDE's perspective, it still thinks Webcore is registered (when looking at the about menu) but trying to compile the app results in an unregistered warning at the command line.
TMS Smart Setup itself cannot query for license information, therefore TMS WEB Core IDE plugin was redesigned to query for the license itself when it is not found upon start of the IDE.
Hi Bruno, that's fine, but it doesn't provide any information about how to solve the problem. If I didn't know the License Generator existed I would have hit an unpassable wall. Also I think re-entering login details after each build might be a bit much?
Didn't the IDE query for your credentials upon startup after install with TMS Smart Setup?
And it should do this only the first time.
Nope. And every time a rebuild is done the entire branch of the registry for webcore is deleted and the registration has to be completed again.
Hi everyone,
SmartSetup creates the registry entries we specify when installing, and removes them when uninstalling. That's the standard stuff. tms build
will indeed do an uninstall then an install, so it will remove the entries.
You can see the entries if you install webcore in a machine and then look to tmsbuild.yaml:
registry keys:
- Software\tmssoftware\TMS WEB Core:
value:
name: InstallDir
data: %install-path%
value:
name: InstallDirWEB
data: %install-path%
value:
name: Username
value:
name: Code
value:
name: Version
data: %version%
value:
name: License
value:
name: Date
data: %install-date%
value:
name: JSLibConfig
data: $(TMSWebDir)\Config\Extensions.json
value:
name: Core Source
data: $(TMSWebDir)\Core Source\
value:
name: Core Source RTL
data: $(TMSWebDir)\Core Source\RTL
value:
name: DefaultURL
data: http://127.0.0.1:8000/$(ProjectName)
value:
name: DebugManager
data: $(TMSWebDir)\TMSDBGServer\bin\TMSDBGManager.exe
value:
name: WebRunner
data: $(TMSWebDir)\TMSWebRunner\bin\TMSWebRunner.exe
value:
name: WebServer
data: $(TMSWebDir)\TMSWebServer\bin\TMSWebServerManager.exe
value:
name: WebServerParams
data: -s $(DefaultURL) $(OutputDir)
value:
name: WebServerWait
type: Dword
data: 2
value:
name: WebServerVisibility
type: Dword
data: 1
value:
name: Browser
type: Dword
data: 1
value:
name: OutputPath
data: .\$(Platform)\$(Config)
value:
name: Pas2JSCompiler
data: $(TMSWebDir)\Compiler\libpas2js.dll
- Software\tmssoftware\TMS WEB Core\Components:
value:
name: TMS WEB Core
data: Software\tmssoftware\TMS WEB Core
Can it be that we shouldn't be creating/deleting License, Username and Code entries? The idea here is that when you uninstall it removes all registry entries it created when installing, that is normally looked as a good thing (I know I hate those apps that when you uninstall them they leave their registry keys and files all over your system)
@Pieter : You can change the registry entries in .....\tms-smartsetup\buildnext\smartsetup\tms.webcore.tmsbuild.yaml
What we can do:
- Leave it as is. Every time you build or install a new version you need to reenter your license. It is not like you reinstall everyday anyway.
- Leave the registry entries for license even when you uninstall. But that won't clean up the registry, those key will live in your machine forever.
- Add some mechanism to smartsetup so we don't remove those entries when doing a
tms build
ortms update
, only when doing an actual uninstall.
I don't know what the setup.exe installer is doing (but I believe it works as smartsetup is working now: You enter the credentials every time you install, because you enter the credentials in the setup screens)
For info using Windows to uninstall Web Core does not remove the registry entries.
Hi Adrian, as far as I can tell, none of the other TMS products clean out the registry nearly as completely as Smart Setup does for Webcore; i.e. as a minimum the licensing information is left behind. Having said that, my only problem with removing everything completely, is that Webcore must have a registry entry hidden somewhere else that stops it prompting for license details after a reinstall. If this entry could be removed as well, so the software prompts the user for the license key, then the problem would be solved.
Lastly, for what it's worth, I think a "rebuild" should at least hold on to the license information. An "uninstall" can take everything with it. It only becomes an annoyance when you are trying to debug your installation and uninstalling/reinstalling multiple times to find out where a problem exists.
Eiszele,
First of all, sorry, this answer was supposed to go to the rest of the team only, to discuss what we do with this case We will be doing something, but the details are what we need to discuss.
Hi Adrian, as far as I can tell, none of the other TMS products clean out the registry nearly as completely as Smart Setup does for Webcore; i.e. as a minimum the licensing information is left behind
Smartsetup does remove everything in all the other products, it is a part of our design goals. The problem with webcore is the extra activation needed, and we agree that there should be a simpler way for users.
Having said that, my only problem with removing everything completely, is that Webcore must have a registry entry hidden somewhere else that stops it prompting for license details after a reinstall.
Yes, I got that, but forgot to comment about it. It is not what I see here when I try it: If I uninstall or do a tms build, the dialog asking for a license appears again. But obviously it is not working in your case, so we will have to investigate why is that. We remove everything in a rebuild, so the dialog should appear again.
Lastly, for what it's worth, I think a "rebuild" should at least hold on to the license information. An "uninstall" can take everything with it. It only becomes an annoyance when you are trying to debug your installation and uninstalling/reinstalling multiple times to find out where a problem exists.
In general yes, but it gets a little more complex than that, due to the smartsetup architecture. It is also something we are looking at as an option, but some stuff doesn't completely work if we take this approach. Basically, uninstall is the same as "remove folder and call tms build" internally. You can uninstall just removing the folder and calling tms build itself. So it is not that clear where it is an uninstall and where it is just a rebuild. But we are looking at this option too.