问题描述:

I am using advance installer to make installer. I have problem regarding that.

There are several options for install condition of prerequisite but I want some different condition for below case.

Let's say I want to put 2010 Microsoft office primary interop assemblies as prerequisite. Now there are two install condition for that.

  1. Product version check to check interop assemblies are installed or not.
  2. Registry check to check whether excel 2010 is installed or not.

Now my prerequisite should install only when my first condition is false and second condition is true.

How could I achieve this using advance installer.

I am not able to find any option like that. What I found are

  1. Install only if at least one condition is false.
  2. Install only if all conditions are false.

Neither first nor second condition is satisfy my requirement.

Please help me.

网友答案:

You cannot use the predefined method you described above. You need to define a new search and delete the two from above. The new search will use as criteria a custom executable, that you have to build, which will perform the validation you require.

The option to define a new search that uses an executable is the last one from the combo list visible in Advanced Installer. Press F1 to get more details about the executable required and how to include it in the project.

I recommend using C++ to build the executable instead of C#, otherwise you will need .Net Framework as a prerequisite too.

网友答案:

The solution is based on simple logical theory:

NOT NOT prop == prop

In your case, you want this to be TRUE: "excel 2010 is installed"

.. or this to be FALSE: "excel 2010 is NOT installed"!

Thus your criteria should be: Registry value does NOT exist.

Cheers

相关阅读:
Top