Custom Action Failing on Vista
I have a package that runs Microsoft VC++ 2008 redistributable setup as a custom action. (Custom action type 2 and Target contains command line arguments).
It works fine on XP but fails on Vista.
Help needed!!!!
It works fine on XP but fails on Vista.
Help needed!!!!
0 Comments
[ + ] Show comments
Answers (17)
Please log in to answer
Posted by:
AngelD
14 years ago
Posted by:
milindsm
14 years ago
VBScab... It worked ... !! But I can't afford to disable it just for a single application.
AngelID .. some more custom actions (defined in custom DLL which was built using Visual Studio 2008) in my installer will fail to execute if VC++ 2008 Redistributable is not installed before hand...!!! (Correct me if I am not correctly interpreting custom action in deferred sequence)
AngelID .. some more custom actions (defined in custom DLL which was built using Visual Studio 2008) in my installer will fail to execute if VC++ 2008 Redistributable is not installed before hand...!!! (Correct me if I am not correctly interpreting custom action in deferred sequence)
Posted by:
milindsm
14 years ago
no hard coded path in the custom action. Basically, its a redistributable available in Microsoft SDKs. I am trying to execute it before any other custom action (defined in DLL) starts. I have specified type as 2 (EXE in Binary Table) and "/q" as a target (/q is for silent install of redistributable)
Posted by:
airwolf
14 years ago
Posted by:
MSIPackager
14 years ago
Posted by:
milindsm
14 years ago
Posted by:
anonymous_9363
14 years ago
Posted by:
jmcfadyen
14 years ago
Posted by:
milindsm
14 years ago
Deploying as a merge module is not an issue. The main issue is the other custom actions. I have some custom actions in a package whose DLL (custom action DLL) was built in Visual Studio 2008 and thus they need VC++ 2008 Redistributable before hand. I must have VC++ 2008 Redist installed on the target machine before any of the custom action as well as installation starts.
I hope I am making sense to you guys...!!!
I hope I am making sense to you guys...!!!
Posted by:
AngelD
14 years ago
You're misunderstanding what a deferred execution for a custom action is. It is not how you build a DLL but in which user context the custom action is executed under. Deferred means the local build in system account (instead of the user whom is performing the installation) which has permission to perform system modifications.
Posted by:
jmcfadyen
14 years ago
Actually Kim I think I see his issue.
There are other CA's that are developed which may be needed prior to deferred execution. Therefore what is needed is the VC++ software needs to be deployed as a prereq not as a deferred CA.
You have a couple of options available which are to use a bootstrapper to deploy the VC++ prior to your requirement of the CA's that are dependant on it.
Alternatively and likely to be a better option for you is to use the EmbeddedUi api's that are available for this very thing.
Using an embedd external UI you can use the UI to call separate installers from a UI which is shared across multiple installers.
It is a little bit like the old style HTLM launch pages except instead of separate installations they are all controlled under the same installation session. Therefore failures of one installation can trigger a rollback of all previous installations.
An example of this is the MS SQL 2008 installer which actually runs multiple MSI's under a single installation window. Here is some links which can aid with this if you take this route.
http://msdn.microsoft.com/en-us/library/bb736317(VS.85).aspx
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg33630.html
http://stackoverflow.com/questions/153431/install-a-chain-of-embedded-msi-packages-ech-using-an-embedded-ui-display-commo
There are other CA's that are developed which may be needed prior to deferred execution. Therefore what is needed is the VC++ software needs to be deployed as a prereq not as a deferred CA.
You have a couple of options available which are to use a bootstrapper to deploy the VC++ prior to your requirement of the CA's that are dependant on it.
Alternatively and likely to be a better option for you is to use the EmbeddedUi api's that are available for this very thing.
Using an embedd external UI you can use the UI to call separate installers from a UI which is shared across multiple installers.
It is a little bit like the old style HTLM launch pages except instead of separate installations they are all controlled under the same installation session. Therefore failures of one installation can trigger a rollback of all previous installations.
An example of this is the MS SQL 2008 installer which actually runs multiple MSI's under a single installation window. Here is some links which can aid with this if you take this route.
http://msdn.microsoft.com/en-us/library/bb736317(VS.85).aspx
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg33630.html
http://stackoverflow.com/questions/153431/install-a-chain-of-embedded-msi-packages-ech-using-an-embedded-ui-display-commo
Posted by:
milindsm
14 years ago
Posted by:
jmcfadyen
14 years ago
Posted by:
milindsm
14 years ago
Posted by:
jmcfadyen
14 years ago
yeah I thought that was what you meant. It still means you need the copy step to happen prior to installation due to the CA in immediate.
A catch 22 situation.
If this was going to general public I would go the C++ route and use the embeddedui. If it was SDLC into common known environment just drop the file first and pretend you didnt know.
A catch 22 situation.
If this was going to general public I would go the C++ route and use the embeddedui. If it was SDLC into common known environment just drop the file first and pretend you didnt know.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.