1

我为 WCF/Silverlight 应用程序创建了一个安装程序。在用户将安装路径更改为 C:\Program Files 之前一切正常。所有其他路径都可以正常工作。

未能为对象设置安全信息:C:\Program Files (x86)\

它在 Windows 2008 Server R2 上。即使用户选择 C:\Program Files\ 日志显示 C:\Program Files (x86)\

安装日志的最后几行:

MSI (s) (90:08) [13:22:10:334]:LocalSQLConfigDataSource 在远程上下文中返回 1。MSI (s) (90:08) [13:22:10:344]:执行操作:ActionStart(Name=ExecSecureObjects,,) Action 13:22:10: ExecSecureObjects。MSI (s) (90:08) [13:22:10:353]:执行操作:CustomActionSchedule(Action=ExecSecureObjects,ActionType=3073,Source=BinaryData,Target=ExecSecureObjects,CustomActionData=C:\Program Files (x86) \CreateFolderEveryone269221888) MSI (s) (90:B0) [13:22:10:358]:调用远程自定义操作。DLL:C:\Windows\Installer\MSIF980.tmp,入口点:ExecSecureObjects ExecSecureObjects:在 C:\Windows\Installer\MSIF980.tmp 中输入 ExecSecureObjects,版本 3.6.3005.0 ExecSecureObjects:保护对象:C:\Program Files (x86)\类型:CreateFolder 用户:Everyone ExecSecureObjects:错误 0x80070005:

4

1 回答 1

1

32 位安装程序无法写入 64 位 ProgramFiles。这需要 64 位 MSI。

为什么要更改 Program Files 文件夹的权限?这对操作系统来说是非常具有侵入性的。

于 2012-08-30T22:31:58.047 回答