找了好久才找到的原因:
During the installation process I got an exception saying “Could not find C:/Program Files/MyApp/MyAction.Installstate”
The problem is that the MSI infrastructure is looking for the installation state file which is usually created during the Install phase.
If the custom action does not participate in the Install phase, no file is created.
The solution is to add the custom action to both the Install and the Commit phases, although it does nothing during the install phase.