I am using version 8.0.0.3390 of Finalbuilder, and since my computer updated to Windows 11 Pro 24H2, I’m getting an error message when I call actions with JavaScript.
Here is the error message:
dotnet Build - [ ZebraPicking ]
Status:
Date: 19/11/2024
Time: 07:33:22:442
End: 07:33:22:487
Duration: 00:00:00:045
Action Messages:
Working Folder : C:.NET\Clientes\Dispreu\ZebraPicking
Command Line : build C:.NET\Clientes\Dispreu\ZebraPicking\ZebraPicking.sln --configuration Release --framework net8.0-windows --verbosity normal
Error Executing script : BeforeExecute
Error en tiempo de ejecución de JavaScript
El objeto no acepta esta propiedad o método
In Action CommonScript, Line: 6
Char : 1
I’m trying to use this script you sent me many (many) years ago:
var currentDate = new Date();
var comparisonDate = new Date(2000, 1, 1);
var difference = currentDate - comparisonDate;
BuildVer = Math.floor(difference / 86400000);
But even although it’s still marked as VBScript, it seems the script is no longer valid within FB.
I cant see hao to access the global variable BuildVer from within the script.
I searched the forums and found the original post with the script we gave you, and it did mention that BuildVer is a FinalBuilder project variable. So you need to define the variable in your project.
I just tested the original script here (Javascript) - with the FB variable defined and it worked first time.
Hmm, I’m begginig to think this is a machine specific error. The project is years old and has always worked fine. I have attached a snapshot of the variable declaration and the error message.
The message (in Spanish) says:
Uncontrolled exception: (“The object does not accept this propery or method”)
When I open the Finalbuilder in debug (under Visual Studio) the error message clearly states that the line 5 column 1 is the culprit. So it seems that for some reason, the BuildVer variable is no being ‘seen’ inside the JavaScript.
I’m encountering the exact same error message with the “dotnet Publish” and “dotnet Build” actions.
And, I too just upgraded to Windows 11 Pro 24H2 and .Net 9 tools(with the latest Visual Studio 2022 17.12 and the dotnet.exe is version 9.0.100). It doesn’t matter which FinalBuilder build script that I have, they all fail with any dotnet action, that I use (dotnet Build and dotnet Publish). And, if I run the dotnet publish, with the command line parameters that FinalBuilder is using, directly in the command line prompt, it works, but fails in FinalBuilder.
Everything was working before upgrading to Windows 11 Pro 24H2 and Visual Studio 2022 17.12.
Exactly the same here with dotnet build and publish. If I run them just executing the command from Execute Program action, using the same command line arguments as FinalBuilder, it works okay.
Thanks for your input, it seems that it is not a machine specific error after all.
Regards,
Martin.
Windows 24h2 enables a policy by default that causes JScript.dll (the com dll) to load JScript9Legacy.dll rather than JScript9.dll.
JScript9Legacy.dll is a replacement engine using Chakra (which itself seems abandoned since Edge moved to using chromium).
The reason they did this was because of a security issue - which is understandable - but unforutnately it introduces a whole host of bugs they do not seem to interested in fixing (I guess it works for them).
This issue even affects some of Microsoft’s own applications (Visual Studio).
Note these keys did not exist on my machine, so I added them.
Right click the Main key and select New DWORD (32-bit) Value, name the new value JScriptReplacement and the value to 0.
Restart FinalBuilder (no need to reboot).
Obviously, this is not ideal - we have been looking to replace JScript for some time - unfortunately so far our efforts have not resulted in something that is 100% backwards compatible - so we still have some work to do in this area.
Perfect, that works just fine.
Ah, those magic words, rarely found in the same sentence: ‘legacy’ and ‘backwards compatibility’ - bring back many memories, not always good ones!
Thanks so much Vincent and the team.
Regards,
Martin.