私の会社が作成したインストーラーで使用されるさまざまな CA を持つカスタム アクション プロジェクトがあります。そのうちのいくつかは、Microsoft.Web.Administration API を介して IIs7 を操作するために使用されます。
IIs 関連の CA を含むクラスに、SetApplicationAutoStart という新しいカスタム アクションを追加しました。このカスタム アクションは、最初の応答時間が短くなるように、II に WCF サービスのプリロードと開始を強制する autoStart 属性を設定するために使用されます。
このアクションを追加した後、SetAppPoolLoadUserProfileTrue という既存の CA が機能しなくなりました。この CA は、コンピューターの既定のサイトが変更されてこの設定が false になっている場合でも、サイトの設定を強制的に true にするため、実際に機能させる必要があります。
アクションが失敗した場合、ログ ファイルには次の行が含まれます。
MSI (s) (A0:18) [15:02:43:639]: Executing op: ActionStart(Name=SetAppPoolLoadUserProfileTrue,,)
Action 15:02:43: SetAppPoolLoadUserProfileTrue.
MSI (s) (A0:18) [15:02:43:641]: Executing op: CustomActionSchedule(Action=SetAppPoolLoadUserProfileTrue,ActionType=3073,Source=BinaryData,Target=SetAppPoolLoadUserProfileTrue,CustomActionData=AppPoolName=xxxxx)
MSI (s) (A0:18) [15:02:43:670]: Creating MSIHANDLE (377) of type 790536 for thread 50712
MSI (s) (A0:C8) [15:02:43:670]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIBD82.tmp, Entrypoint: SetAppPoolLoadUserProfileTrue
CustomAction SetAppPoolLoadUserProfileTrue returned actual error code 1154 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (A0:C8) [15:02:43:673]: Closing MSIHANDLE (377) of type 790536 for thread 50712
MSI (s) (A0:18) [15:02:43:674]: Note: 1: 1723 2: SetAppPoolLoadUserProfileTrue 3: SetAppPoolLoadUserProfileTrue 4: C:\Windows\Installer\MSIBD82.tmp
Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action SetAppPoolLoadUserProfileTrue, entry: SetAppPoolLoadUserProfileTrue, library: C:\Windows\Installer\MSIBD82.tmp
MSI (s) (A0:18) [15:20:25:139]: Product: xxxxxxx -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action SetAppPoolLoadUserProfileTrue, entry: SetAppPoolLoadUserProfileTrue, library: C:\Windows\Installer\MSIBD82.tmp
Action ended 15:20:25: InstallFinalize. Return value 3.
これは、このアクションの PE から dotnet PE を抽出する際の問題のようです。バイナリ内の他のすべての CA は、新しい CA を含めて正しく機能します。