Запустите проект настройки в качестве администратора, но установите программное обеспечение для регистрации пользователяC#

Место общения программистов C#
Ответить
Anonymous
 Запустите проект настройки в качестве администратора, но установите программное обеспечение для регистрации пользователя

Сообщение Anonymous »

Я должен запустить проект настройки (.exe) в качестве администратора для установки некоторых данных драйвера, но хочу установить программное обеспечение на .msi в качестве регистрации в пользователе (на пользовательском установке) без необходимости права администратора. В конце все пользователи с установкой программного обеспечения должны иметь возможность просматривать программное обеспечение в «Добавить или удалить программы». Так что только отдельная установка пользователя удаляется, а не версия для всех пользователей. Это кажется возможным только в том случае, если программное устранение зарегистрировано в hkey_users. Что не так в моем сценарии, это в HKLM. /> Computer \ hkey_current_user \ Software \ Microsoft \ Windows \ CurrentVersion \ uninstall < /p>
Вместо этого он отображается здесь:
Computer \ hkey_local_machine \ Software \ WOW6432NODE \ Microsoft \ Windows \ CurrentVersion \ Uninstall {D8EDCAFD-7A78-41D7-9A23-157952D41427} < /P>
Это кажется неправильным для меня. Это будет проблема? /> [*] postbuildevent =

Код: Выделить всё

"%PROGRAMFILES(x86)%\Windows Kits\10\bin\10.0.26100.0\x86\MsiInfo.exe" "$(BuiltOuputPath)" -w 10
[*]application folder is set to [LocalAppDataFolder][Manufacturer][ProductName]

[*]additional data are saved to ProgramData: [CommonAppDataFolder][Manufacturer][ProductName]

[*] Реестр на целевой машине установлен на:
fullpath = hkcu \ software [производитель] < /p>
< /li>
manifest программного обеспечения установлено на: < /p>

Код: Выделить всё

< /code> < /p>
< /li>
< /ul>

 Инструмент диалога настройки настройки (.exe) < /li>
< /ol>

  App.maifest set: < /p>


[*] Инструмент создает задачу в планировщике задач Windows для запуска .msi в качестве регистрации в пользователе (это работает нормально, но устанавливает неправильные ключи реестра):

Код: Выделить всё

string command = $"msiexec.exe /i \"{msiPath}\" /qn /norestart /L*v \"C:\\ProgramData\\myprog\\install_log.txt\"";
string arguments = $"/Create /TN \"{taskName}\" /TR \"{command}\" /SC ONCE /ST {timeNowPlusOneMinute} /RL LIMITED /F /RU \"{loggedInUser}\"";
try {
using (Process process = new Process()) {
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
output = process.StandardOutput.ReadToEnd();
error = process.StandardError.ReadToEnd();
process.WaitForExit();
exitCode = process.ExitCode;
return exitCode == 0;
}
} catch (Exception ex) {
error = $"error: {ex.Message}";
return false;
}
[*] он ждет конкуренции задачи и запускает программное обеспечение

[*] Он проверяет, было ли программное обеспечение установлено с правильной версией -> это то, что я хотел бы проверить с помощью регистрации
>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ed-in-user
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»