Currently, I am working on a client project that uses Feature Events. If you aren’t familiar with them, here is a brief explanation from the Help:
Feature event handlers carry out processes required just before and just after the installation or uninstallation of a single feature.
You define Feature Events in the Setup Design or Features views. Here’s a screenshot from a project I’m working on.
If you think the screenshot looks odd, it does for a reason. I blocked out certain parts so as to not reveal information about my current client project. I’m sure you understand about nondisclosure agreements.
In the screenshot, I have selected a feature and its properties are shown on the right. Notice that this feature has a Feature Event called Operations_Dashboard_UnInstalling. This is called before the uninstallation of the feature occurs.
Well, in this project I wanted to stop using a Feature Event for a certain feature. To do this, you would click on the list for the property, then select None Selected from the list. When you do, the Save button is not enabled in the IDE, and if you click on another feature and come back to the one you were editing, it will still have the feature event defined. That’s a problem, but there is a workaround.
Just go to the Direct Editor view. Feature Events are held in the ISFeatureExtended table. Here is a screenshot showing the table and some of the events that are defined in it. I had to scrunch some of the columns together in order to fit it into a blog post.
In the table, there is a column with the Feature name, and columns responding to each of the four types of Feature Events. You see the Print_Server_Application_Pool feature has a Feature Event called Print_Server_Application_Pool_Installed.
To remove the Feature Event I no longer wanted, I just found the Feature, and cleared the Feature Event name in the column for the event. When I did this, the Save button became enabled in the IDE, and I could save my changes.