2016-08-14 82 views
-1

当我复制文件夹中的文件时,我有一个运行在目标机器上(通过非管理员)的.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. 在包命令试图与installScope如perMachine和每用户
  2. 加在的setup.exe清单,并改变了requestedExecutionLevel作为asInvoker和requireAdministrator。

通过一些试验和错误,这工作约6个月前,但我不记得我做了什么。任何想法将不胜感激。

+0

downvote的原因是什么?问题太容易解决或解释不好? – Samuel

回答

3

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

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

这里的基本点是,安装不能“安装”已安装的应用程序,因此有限的用户可以使用它来执行需要提升的事情。应用程序需要调试它需要提升的功能,而常见问题是尝试更新受限用户无法访问的位置中的文件,例如Program Files,Common Files文件夹。

+0

是的,这是原因。远程调试后我发现了。 – Samuel