I am using WiX 3.5.1930 in Visual Studio 2010, targeting the .NET Framework 3.5. (Later weekly builds of WiX seem to be very broken with respect to their custom action temp
I just found the same issue (using the correct .CA.dll file) and in my case it was because I wasn't using a static method. I had this:
public ActionResult MyMethod(Session session)
Instead of this:
public static ActionResult MyMethod(Session session)
After changing the method it worked just fine.
Hope it helps someone.
Another reason I saw this error was because I forgot to add the [CustomAction] attribute to the name of my c# function.
My answer is not directly related to this question. But in my case, I got stuck in the same error code 1154, because I created one more function in the same class but not marked that function as [CustomAction]
My code was looking like
namespace VerifyUserInfo {
public class CustomActions {
[CustomAction]
public static ActionResult TryToLogin(Session session) {
return ActionResult.Success;
}
public static ActionResult RegisterDevice(Session session) {
return ActionResult.Success;
}
}
}
But then I fixed with the [CustomAction]
added just above the new function and issue resolved
namespace VerifyUserInfo {
public class CustomActions {
[CustomAction]
public static ActionResult TryToLogin(Session session) {
return ActionResult.Success;
}
[CustomAction]
public static ActionResult RegisterDevice(Session session) {
return ActionResult.Success;
}
}
}
If you create your custom action in Visual Studio (Votive) be sure that you created a Wix Custon Action project and not a class library, otherwise you have to use MakeSfxCA tool to pack your custom action.
In my case it was the function name length. It was 27 characters, and we were getting the error. We changed the function name to 24 characters, and it worked.
I hit upon another very simple (and stupid) cause for error 1154: misspelling the DLL entry name in the CustomAction element...
Comparing various causes other people have found it seems to me that error 1154 means in most cases, "DLL entry not found".