I'm testing InstallAware Express X4 to migrate from the old InstallAware Express 7.
I have imported one of my project to this new IA-E-X4 and it seems to be working well. When I test the application deployment on a Win10 machine everything works perfectly, however when I test it on a Win7 machine only the installation process does complete successfully, but the application does not start because there are some DLL files that aren't accepted. I tried deleting all files on Setup Architecture section and using Scan... button, but the same problem was still there. My development environment is a Win10 running on a VMWare virtual machine.
If I delete one by one those DLL files from the $TargetDir$ on the deployment computer, then my application starts. There are eight DLL files that I must delete in this work-around: netutils.dll; wkscli.dll; idmdl.dll; fwpuclnt.dll; dwmapi.dll; dhcpcsvc6.dll; cryptbase.dll; winspool.dll.
What am I doing wrong?
Must I change some parameter on InstallAware for when the target machine has Win7?
Thanks in advance,
Patricio Cerda
Deployed app does not start because some DLL files are not accepted
-
- Site Admin
- Posts: 5361
- Joined: Sun Aug 22, 2010 4:28 am
Re: Deployed app does not start because some DLL files are not accepted
Dear Patricio,
what you are reporting has nothing to do with InstallAware and this exclusively depends on such DLLs .
I don't know who developed your application, but who developed it should know which DLLs are required and which version of them.
By the way, those dlls you listed are specific SYSTEM COMPONENTS and if you are copying them from a WIN 10 OS, of course these fail to run on Win 7. So for what I see, you should not include any of them .... these are all system DLLs.
Hope this helps you.
Regards
what you are reporting has nothing to do with InstallAware and this exclusively depends on such DLLs .
I don't know who developed your application, but who developed it should know which DLLs are required and which version of them.
By the way, those dlls you listed are specific SYSTEM COMPONENTS and if you are copying them from a WIN 10 OS, of course these fail to run on Win 7. So for what I see, you should not include any of them .... these are all system DLLs.
Hope this helps you.
Regards
Francesco Toscano
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
Re: Deployed app does not start because some DLL files are not accepted
Thank you Francesco,
This is my first post on this forum and I'm not sure how or what kind of questions can I do, beyond the "PLEASE READ BEFORE POSTING" recommendations.
My development environment is the Embarcadero C++ Builder Berlin 10.1 running on a Win10 installed on a VMWare Fusion virtual machine.
On my previous uses of InstallAware Express 7 (from here on, "IA-E-7"), for about five years when I used C++ Builder XE and XE5 from Embarcadero, always building the installer project with the help of the "Scan…" button and always obtaining the correct DLL files, no matter if the destination machine had WinXP, Win2008 Server, Win7 or Win8.
The problem started after I migrated to the new C++ Builder Berlin 10.1, but still using "IA-E-7". The application installed with this "IA-E-7" project file wouldn't run because of some missing Windows files. I couldn't solve this problem in any way.
Then I download and tested the new InstallAware Express X4 ("IA-E-X4"). Now the problem didn't appear but, showing a different behavior this time, the "Scan..." button does include those€ described DLL files, so I suppose that there is a configuration problem with "IA-E-X4". Why it is including those DLL files? Why it is not checking which Windows version is in the target machine? When could I use the "Scan…" button with certainty of its results?
Your comments make me doubt the possibility that "IA-E-7" was failed on Win10, just as in the case of "IA-E-X4", because the user (me) does not add/delete some files that the project file wouldn't consider by itself. Maybe the "IA-E-7" is not really incompatible with Win10 as I understood from an email sent to me from Jason Strathmore, so I wouldn't need to upgrade yet to the new "IA-E-X4". Could you elaborate more on this point, please?
Best regards,
Patricio Cerda
This is my first post on this forum and I'm not sure how or what kind of questions can I do, beyond the "PLEASE READ BEFORE POSTING" recommendations.
My development environment is the Embarcadero C++ Builder Berlin 10.1 running on a Win10 installed on a VMWare Fusion virtual machine.
On my previous uses of InstallAware Express 7 (from here on, "IA-E-7"), for about five years when I used C++ Builder XE and XE5 from Embarcadero, always building the installer project with the help of the "Scan…" button and always obtaining the correct DLL files, no matter if the destination machine had WinXP, Win2008 Server, Win7 or Win8.
The problem started after I migrated to the new C++ Builder Berlin 10.1, but still using "IA-E-7". The application installed with this "IA-E-7" project file wouldn't run because of some missing Windows files. I couldn't solve this problem in any way.
Then I download and tested the new InstallAware Express X4 ("IA-E-X4"). Now the problem didn't appear but, showing a different behavior this time, the "Scan..." button does include those€ described DLL files, so I suppose that there is a configuration problem with "IA-E-X4". Why it is including those DLL files? Why it is not checking which Windows version is in the target machine? When could I use the "Scan…" button with certainty of its results?
Your comments make me doubt the possibility that "IA-E-7" was failed on Win10, just as in the case of "IA-E-X4", because the user (me) does not add/delete some files that the project file wouldn't consider by itself. Maybe the "IA-E-7" is not really incompatible with Win10 as I understood from an email sent to me from Jason Strathmore, so I wouldn't need to upgrade yet to the new "IA-E-X4". Could you elaborate more on this point, please?
Best regards,
Patricio Cerda
-
- Site Admin
- Posts: 5361
- Joined: Sun Aug 22, 2010 4:28 am
Re: Deployed app does not start because some DLL files are not accepted
Dear Patricio,
you have to understand that any SCAN process exclusively reports the dependency that exists with the running system image.
If you scan for any dependency from a Win 10 x64 system, these results are only valid for Win 10 x64... because the scanning process can only operate over the current and active system image. In addition you have to consider that any scan process will return all the dependency image which is currently observed by the scanned process. This means that any DLL relation will be reported and this can include any SYSTEM DLLs as well (because are used anyway). This cannot be different and in case it is, there is an error with the scanning process .... and because very probably the tool doesn't support Win 10.
In other words, if you generate a dummy C++ application that only has a MAIN () function, which exclusively calls the "MessageBox" WINAPI (exported by the User32.dll) and then execute the scanning process over it, with the returned dependencies you will have; the User32.dll along with any other DLL linked with the "User32.dll" itself.
Finally and supposing the above example, no ONE of the returned DLL dependency needs to be included once I want to distribute my previous dummy application. This because all the returned dependencies are based on system components, which are already part of the operating system.
To better understand this, I suggest you to play with the "Dependency Walker" tool (http://www.dependencywalker.com/).
Because for what I can understand you are the one who developed your application, you should know exactly which are the libraries that are necessary to run your application. All these are defined with the C++ project settings and in addition, some other dependencies may depend on the defined build type; STATICALLY LINKED or DYNAMICALLY LINKED.
http://stackoverflow.com/questions/311882/what-do-statically-linked-and-dynamically-linked-mean.
To conclude and for what I can understand by your information, any of the returned dependencies should be included. These are system DLLs.
At any rate, if for test purpose you simply try to manually execute your EXE on a different OS, you should receive a message error about the missing DLL. Furthermore, you may use the "Dependency Walker" tool to have a clear picture of the effective dependency links used by your application.
Last but not least, IA 7 is definitively NOT COMPATIBLE with Windows 10.
Hope this helps you.
Regards.
you have to understand that any SCAN process exclusively reports the dependency that exists with the running system image.
If you scan for any dependency from a Win 10 x64 system, these results are only valid for Win 10 x64... because the scanning process can only operate over the current and active system image. In addition you have to consider that any scan process will return all the dependency image which is currently observed by the scanned process. This means that any DLL relation will be reported and this can include any SYSTEM DLLs as well (because are used anyway). This cannot be different and in case it is, there is an error with the scanning process .... and because very probably the tool doesn't support Win 10.
In other words, if you generate a dummy C++ application that only has a MAIN () function, which exclusively calls the "MessageBox" WINAPI (exported by the User32.dll) and then execute the scanning process over it, with the returned dependencies you will have; the User32.dll along with any other DLL linked with the "User32.dll" itself.
Finally and supposing the above example, no ONE of the returned DLL dependency needs to be included once I want to distribute my previous dummy application. This because all the returned dependencies are based on system components, which are already part of the operating system.
To better understand this, I suggest you to play with the "Dependency Walker" tool (http://www.dependencywalker.com/).
Because for what I can understand you are the one who developed your application, you should know exactly which are the libraries that are necessary to run your application. All these are defined with the C++ project settings and in addition, some other dependencies may depend on the defined build type; STATICALLY LINKED or DYNAMICALLY LINKED.
http://stackoverflow.com/questions/311882/what-do-statically-linked-and-dynamically-linked-mean.
To conclude and for what I can understand by your information, any of the returned dependencies should be included. These are system DLLs.
At any rate, if for test purpose you simply try to manually execute your EXE on a different OS, you should receive a message error about the missing DLL. Furthermore, you may use the "Dependency Walker" tool to have a clear picture of the effective dependency links used by your application.
Last but not least, IA 7 is definitively NOT COMPATIBLE with Windows 10.
Hope this helps you.
Regards.
Francesco Toscano
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
Who is online
Users browsing this forum: vaibhavopkey and 140 guests