c # - Visual Studio producerede MSI-installatører, programfiler og administratoradgang

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et arbejdsprogram, som jeg er klar til at generere en MSI fra til distribution. Standardinstallationsstedet er C / Program Files / Foo / Bar, og det er, hvor jeg foretrækker det at installere. Men , efter at have installeret på den pågældende placering, nægter programmet at køre, medmindre højre klikkes og 'Kør som administrator'.


Jeg forstår, at programmet kræver administratoradgang, fordi det er installeret i C / Program Files (jeg har en alternativ installationssti, der installerer den på skrivebordet, der mangler dette problem), så jeg leder efter en måde at ikke køre program som administrator hver gang jeg vil bruge den.


Jeg havde troet, at installationen af ​​.msi 'som administrator' ville løse problemet, men højreklikke på .msi giver ikke en 'køre som administrator' som forventet.


Er der nogen måde at gøre det så jeg behøver ikke at køre programmet som administrator hver gang, mens jeg opretholder installationsmappen c / program files?

Bedste reference


Byg MSI'en med en setup.exe. Du kan så højreklikke på EXE og køre som Admin. Du kan ikke gøre dette til MSI fordi det ikke er et program, det er et dokument (database), der udføres af et andet program (msiexec.exe).

Andre referencer 1


Normalt sker dette, når applikationen forsøger at skrive data i et sted på maskinen (f.eks. Programfiler eller HKEY\_LOCAL\_MACHINE). I dette tilfælde vil applikationen kun fungere, hvis den bliver lanceret som administrator.


En løsning er at bruge brugersteder til applikationsdata. For eksempel Application Data (AppData) mappe under brugerprofilmappen og HKEY\_CURRENT\_USER.


Men hvis din ansøgning virkelig har brug for administratorrettigheder, kan du bruge et UAC ansøgnings manifest. [4]