Question: I've made an simple installation class:

```
[RunInstaller(true)]
public class MyCustumAction : Installer
{
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);
        string value = Context.Parameters["targetdir"];

        throw new Exception("Contact?? " + value);

        WriteLog(value);
    }

    private void WriteLog(string message)
    {
        using(FileStream f = File.Create(@"C:\ik ben nieuw.txt"))
        {
            using (StreamWriter w = new StreamWriter(f))
            {
                w.WriteLine("Dag van installatie: " + DateTime.Now.ToString());
                w.WriteLine(message);

            }
        }
    }
}

```

In my Setup project I've done the following:

* Add project output - primary output of my assembly
* Add a Custom Action on the Install directory (Custom Actions view)
* Set CustumActionData to '/targetdir="[TARGETDIR]\"'
* Build my assembly and build the setup project

During the installation, the Exception is not thrown. Why not? It seems that my class isn't invoked. What am I doing wrong here?

**UPDATE**

When I create a seperate project with only the installer class in it and add this ont to my project ouput and set the custum action properly, I do get the exception!

Now I am wondering why this same file doesn't get invoked in my own (winforms) assembly..

Answer: 
The runtime classpath is likely polluted with duplicate and/or different versions of EL API.

Normally, the EL API is already shipped with servletcontainer/appserver in question. You should in **no way** copy/duplicate/move its libraries somewhere else, such as into webapp's `/WEB-INF/lib` or more worse the JRE's `/lib`. Cleanup the classpath from all duplicate and/or different versioned classes / JAR files. It may otherwise lead to exceptions like this.

A common mistake among starters is namely that they copy the servletcontainer/appserver's libraries into `/WEB-INF/lib` because they got compilation errors in the IDE (`javax.servlet` not found and so on). Copying the libraries is the **wrong** solution. You should rather have integrated the server in the same IDE and configured the IDE project to reference/associate the server in question so that the IDE will automagically take its libraries in the project's buildpath.
Googling a bit around indicates, that other applications have similar problems, usually it is due to some compatibility problems with el libraries. You may wanne check for that.