1

我已经创建了一个从 IIS 服务器获取站点的自定义操作。当我在本地机器上运行它时,它运行良好。但是当我在另一台机器上运行它时,它不工作。

自定义操作的定位器 <"Binary Id ="IisManager" SourceFile="$(var.SourceDir)\bin\CustomActions.CA.dll"/> ("用于 foarmat this)

<UI Id="MyWixUI_Mondo">
  <UIRef Id="WixUI_Mondo"/>
  <UIRef Id="WixUI_ErrorProgressText" />

  <DialogRef Id="IisSettings" />      

  <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="IisSettings" Order="3">LicenseAccepted = "1"</Publish>
  <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="IisSettings">1</Publish>


  <InstallUISequence>
    <Custom Action="GetIISWebSites" After="CostFinalize" Overridable="yes">NOT Installed</Custom>
    <Custom Action="GetIISAppPools" After="CostFinalize" Overridable="yes">NOT Installed</Custom>
  </InstallUISequence>

</UI>

我做错了吗?只在我的机器上工作......

4

2 回答 2

1

您的自定义操作正在崩溃,因为它引用了未在另一台计算机上注册的 COM 类。显然 CLSID 属于 Microsoft.ApplicationHost.WritableAdminManager 和 ServerManager 托管 API,因此如果它们不存在于目标计算机上,您的代码将失败。网络搜索 -CLSID {2B72133B-3F5B-4602-8952-803546CE3344- 可能会为您提供更多信息,但据我所知,这不是 WiX 或 Windows Installer 问题。

于 2014-06-09T15:03:21.287 回答
0

以管理权限运行安装程序文件解决了该问题。

CMD -> 以管理员身份运行 -> 转到设置文件并运行它。

于 2014-06-20T11:25:56.437 回答