普通用户无法执行WiX安装程序

时间:2016-08-14 00:49:19

标签: wix windows-installer unauthorized mscorlib

当我复制文件夹中的文件时,我有一个在目标计算机上运行的.net程序(由非管理员运行)。

但是,当我在目标计算机上创建安装程序(使用Wix)并尝试运行它时,会出现以下错误:

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: RN14W3TBEKIWLLFBCD5MLN3WYLZ522KZ
  Problem Signature 02: 1.7.20.0
  Problem Signature 03: 57afb905
  Problem Signature 04: mscorlib
  Problem Signature 05: 4.0.30319.34209
  Problem Signature 06: 53489fcf
  Problem Signature 07: 4524
  Problem Signature 08: 13c
  Problem Signature 09: System.UnauthorizedAccess
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:    1033
  Additional Information 1: e3b9
  Additional Information 2: e3b9870467ec4722310fb4741c3dc189
  Additional Information 3: 88d1
  Additional Information 4: 88d10b8987a6d3ce2924300f4efa24bb

我尝试了以下方法来解决问题:

  1. 在package命令中尝试使用installScope作为perMachine和perUser
  2. 在setup.exe中添加了一个清单,并将requestedExecutionLevel更改为asInvoker和requireAdministrator。
  3. 通过一些试验和错误,大约6个月前,但我不记得我做了什么。任何想法将不胜感激。

1 个答案:

答案 0 :(得分:3)

安装与应用程序实际运行时发生的情况大多无关。您无法以某种方式使安装允许有限的用户运行需要提升的应用程序。如果您希望应用程序运行提升,那么需要提升清单的是什么,而不是执行安装的setup.exe。

最可能的原因是WiX将应用程序安装到Program Files文件夹,而应用程序正在尝试创建或更新该位置的文件。 Program Files文件夹始终需要提升权限才能在那里创建/更新文件。基本上崩溃信息没有帮助,因为问题是代码试图访问或更新需要提升的东西,因此代码需要调试。

这里的基本观点是安装不能保佑"已安装的应用程序,以便有限的用户可以使用它来执行需要提升的事情。应用程序需要调试它正在做什么需要提升,并且常见的问题是尝试更新有限用户无法访问的位置的文件,例如Program Files,Common Files文件夹。