2016-08-14 4 views
-1

У меня есть программа .net, которая запускается на целевой машине (не администратором) при копировании файлов в папку.Установленная программа WiX не может быть выполнена обычным пользователем

Однако, когда я создаю программу установки (с помощью 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 и perUser
  2. Добавлено манифеста в setup.exe и изменил requestedExecutionLevel в asInvoker и requireAdministrator.

Посредством проб и ошибок это сработало около 6 месяцев назад, но я не помню, что я сделал. Любые идеи будут оценены.

+0

В чем причина нисходящего потока? проблема слишком легко решить или не объяснить хорошо? – Samuel

ответ

3

Установка в основном не имеет отношения к тому, что происходит, когда приложение действительно выполняется. Вы не можете заставить установку каким-то образом разрешить ограниченному пользователю запускать приложение, требующее повышения. Если вы хотите, чтобы приложение выполняло повышенные значения, для этого требуется манифест Elevation, а не setup.exe, который выполняет установку.

Наиболее вероятной причиной является то, что WiX устанавливает приложение в папку Program Files, и приложение пытается создать или обновить файлы в этом месте. Папка Program Files всегда требовала повышенных привилегий для создания/обновления файлов там. В основном информация об аварии не помогает, поскольку проблема заключается в том, что код пытается получить доступ или обновить что-то, что требует повышения, поэтому код нуждается в отладке.

Основной момент заключается в том, что установка не может «благословить» установленное приложение, поэтому оно может использоваться ограниченным пользователем для выполнения действий, требующих повышения. Приложение необходимо отлаживать в зависимости от того, что он делает, что требует повышения, а распространенная проблема заключается в попытке обновить файлы в местах, недоступных для доступа пользователей, таких как папки Program Files, Common Files.

+0

Да, это была причина. Я узнал после удаленной отладки. – Samuel

Смежные вопросы