stodle2.tlb error

Started by davethomson, November 04, 2014, 11:33:40 PM

Previous topic - Next topic

Tom Buggy

Good points -- better safe than sorry -- thanks.

Randem

Did you check the dates on all the runtime files on XP verses the dates on the distributed runtimes in InnoScript? It all depended on which Service Pack was installed or if it was a OEM Install or a number of other factors if they were present and current or not. So the safest way to ASSURE that your application worked was to redeploy them all and not to count on LUCK. If they were not needed - No Harm... If they were either not there or removed for some reason, your application would work anyway regardless of what happened on the machine before... Would you want to have to support a customer needing to download and install the correct VB runtime files in order for your application to work or would you just want it to work without user intervention? I would trust that you would want the latter.

Tom Buggy

Sorry about that -- I overlooked/misinterpreted "since XP" in your post.  I created a "clean" Windows XP Home virtual system with Oracle VirtualBox.  As you say, the VB Runtime Files are present, in C:\Windows\System 32.

I assume the Flag "OnlyBelowVersion: 0,6" means only below XP.  A minor point related to potential confusion.  I created a new script with only XP in Versioning, i.e. only XP for Min and Max NT Version, and "None" for Min and Max Windows Version.  In this case it seems that there's no need to have the Runtime Files in the generated script (which they are).  Again, a minor point -- as a practical matter it makes no difference given the OnlyBelowVersion: 0,6 Flag.

Randem

The VB Runtime files are only distributed with OS's since XP not before. It's very easy to check; install a Clean XP system then check for the VB Runtme files... You already know where they are supposed to be. You will only find a registration problem after XP since the VB Runtime files are not needed, they won't register properly.

Tom Buggy

Randem says: "including the one where these will only install on XP and below."

Anomalies happen, discovery is good, and the latest addition looks to be good work.  A lingering question.  The Microsoft document I referenced previously says that the VB Runtime Files are distributed with all editions of XP, which raises the question of whether or not they need to be included in the installation script for XP.  On the other hand, I never experienced the registration problem with stdole2.tlb on our XP systems (development or virtual) with the original script line.  So, it looks like things are workable either way - ?

davethomson

Interesting ... my .iss file now has

Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\stdole2.tlb; DestDir: {sys}; Flags:  regtypelib restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\MSVBVM60.DLL; DestDir: {sys}; Flags:  regserver restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\OLEAUT32.DLL; DestDir: {sys}; Flags:  restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\OLEPRO32.DLL; DestDir: {sys}; Flags:  regserver restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\ASYCFILT.DLL; DestDir: {sys}; Flags:  restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\COMCAT.DLL; DestDir: {sys}; Flags:  restartreplace sharedfile uninsneveruninstall; OnlyBelowVersion: 0,6
Source: C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11\VB 6 Redist Files\VB5DB.DLL; DestDir: {sys}; Flags:  restartreplace sharedfile uninsneveruninstall;

and there is no "stdole2.tlb" notice to ignore upon running the .exe file.  Works very smoothly.  :D

I am very familiar with anomaly as my programs always seem to have them.  Thanks for the updates!

Randem

I found an anomaly regarding VB Runtime files. I have attached three files that need to be placed into the location where InnoScript was installed. Unzip them and copy then to the C:\Program Files (x86)\Randem Systems\InnoScript\InnoScript 11 folder (If you have not changed the default folder). re-run InnoScript on your project and the VB Runtime files should appear in your script with the proper flags, including the one where these will only install on XP and below.

Tom Buggy

Randem,

Agree that our discussion has ended -- dilemmas rarely lead to agreement.  BTW, I don't believe I have "hijacked" another's thread.  The subject of the thread is the stdole2.tlb situation and my participation is related to that subject.

Randem

Tom,

Yes, we would eliminate all the files that were not needed (Runtime files). We would get to this conclusion via the process of testing and our understanding of what files belong where. You have hi-jacked another users thread for your purposes. the process is not going to happen like you want it too unless you pay someone to do it your way. You can either create your own tool or use the ones that are provided as is or help in the development of an existing tool. Unless someone is paying for the development cost. This is our last response to you on this matter.

Randem

To further respond on the stodle2.tlb file or ANY other file that you want only installed on certain OS's and not others. All one would need to do is to copy the line from the script then add it to the projects template file in InnoScript and add the InnoSetup directive OnlyBelowVersion to the line as shown:

Source: C:\Program Files (x86)\Microsoft Visual Studio\VB98\Wizards\PDWizard\Redist\stdole2.tlb; DestDir: {sys}; Flags:  regtypelib restartreplace uninsneveruninstall; OnlyBelowVersion: 0,5.02;

This will cause the file to be installed on XP and below but not Windows Vista and above. Each time you generate the script and the stdole2.tlb file is in the script it will be replaced by this line. However if the stdole2.tlb file is NOT in the script then this line will be ADDED to the script anyway. This is how the template function works.


Tom Buggy

Randem,

I guess we're on the proverbial "horns of a dilemma."  I don't know the reasons/strategy for Randem Systems making InnoScript free.  If I recall correctly it wasn't always free.  I paid "something" for it when I began using it some time ago (perhaps a donation) but it certainly wasn't $300-$500.  As a developer of commercial applications, I understand the tradeoff difficulty between development/support expense and return on the investment, and the related setting of price.  However, when a company offers a product I believe it has some fundamental responsibilities.  As these responsibilities relate to our present discussion of InnoScript:

1. Many or most users of high-level languages such as Visual Basic have limited capabaility for understanding the technical details and complexities of Windows, including those related to installing applications on Windows systems (without disparagement I'll use Dave as an example).  Such languages are provided to minimize the requirement for such.  Therefore, against this background, I believe the developers of installation tools have a fundamental reponsibility to mask the complexities of installation as a fundamental characteristic of their product -- at whatever the price of the product.

2. The exclusion in installation scripts of files that are shipped in Windows systems seems to me to be a fundamental requirement of a present-day installation tool.

Again, a delemma for Randem Systems.

PS A non-hypothetical question -- if I were to pay you for developing an installation script for another of our Visual Basic applications, would you exclude the VB Runtime files that are shipped with XP through 8.1 Windows ystems?

Randem

Also as far as stdole2.tlb or any other file the user does not want in the script. InnoScript provides several ways to eliminate or modify the files.

1 - Unsafe file list
2 - Templates

The unsafe file list can be used to eliminate the file from all future generated scripts. The template file can be used to remove a line from the script or modify the files information and control aspects of the files installation such as if it gets installed on certain OS's and not others as well as many other aspects that may be unique to the user. InnoScript will NEVER force a user to do it one way or the other, it is ALL at the users discretion as it should be.

davethomson

You know, I had completely forgotten all about your paid services.  Now that is something to keep in mind for the future.

Thanks again for your help.  :D

Randem

Tom,

The tool is now free. If you would not mind paying 3-5 hundred dollars for the tool, support, updates and a yearly subscription fee. Then yes, the tool should handle it. Meanwhile the user has to do the research (just as you did). We do offer a paid service that will create the script & do the research for you should you not want to do the work yourself. You should really re-think what you are expecting for FREE. If you would like to use the paid service for us to create the script for you then let us know.

davethomson

Thank you for the details explanation.  I certain do have a much better understand of the situation.