2011-08-18 3 views
0

Je crée une application de bureau C# .Net 4.0 pour un client. Lorsque je lui ai envoyé les fichiers .msi, il nécessite des privilèges d'administration lors de l'installation. Je me rends compte que c'est parce que j'installe l'application dans le répertoire "Program Files".Installation de l'application de bureau .net

Existe-t-il un moyen d'installer une application dans une zone de l'ordinateur de l'utilisateur qui ne nécessite pas d'installation en tant qu'administrateur?

J'utilise .Net 4.0

+1

voir ceci http://serverfault.com/questions/19341/how-do-i-run-a-msi-installer-with-elevated-priviledges-on-windows – Adeel

+0

Je suppose que je demande quand je construisons mon projet. Puis-je le construire pour que le fichier msi n'ait pas besoin d'un admin pour l'installer? – webdad3

+0

Y a-t-il une raison pour laquelle vous aimeriez utiliser msi? Vous pouvez utiliser l'approche xcopy pour effectuer un déploiement. Il suffit de copier le dossier entier à l'endroit que l'utilisateur actuel a l'autorisation. –

Répondre

1

Je ne sais pas si cela résoudra le « nécessite administrateur » problème, mais vous pouvez modifier le dossier cible pour votre installation dans « File System » vue de votre projet d'installation:

  • Faites un clic droit sur le projet d'installation dans le solution explorer et choisissez View/File System.
  • Sélectionnez "Dossier d'application".
  • Dans Propriétés, modifiez DefaultLocation.

De même, il est généralement recommandé de distribuer setup.exe avec * .msi, de sorte que les prérequis manquants puissent être installés automatiquement.

+0

J'ai vu cette option. Je ne savais pas si cela résoudrait mon problème. Je suppose que je peux l'essayer. – webdad3

+0

Vous pouvez également essayer de désactiver les "InstallAllUsers" dans le volet Propriétés de votre projet d'installation (pas le clic droit sur Propriétés, vous devez sélectionner le projet d'installation puis passer aux propriétés "habituelles"). –

1

en fonction de ce que l'application des dépendances a vous pouvez essayer un déploiement XCOPY - bien que l'on semble que pour que la documentation VS2005 + VS2008 ...

Nous intégrons généralement toutes les dépendances dans l'application (dans notre cas fichier EXE), de cette façon il peut être "installé" en le copiant simplement ... tant que le framework nécessaire (ie .NET4 dans notre cas) est déjà là ...

voir http://msdn.microsoft.com/en-us/library/ms235291%28VS.90%29.aspx

1

Si vous ajoutez le fichier manifeste et l'affectez à l'application, vous devez définir le niveau d'exécution.

Voici la ligne où vous pouvez définir le niveau d'exécution.

< niveau requestedExecutionLevel = "asInvoker" uiAccess = "false"/>

Si vous voulez que votre course exe toujours courir comme administator alors vous devez changer l'énoncé ci-dessus suivre

< niveau requestedExecutionLevel = "requireAdministrator" uiAccess = "false"/>

Consultez le lien suivant pour créer un fichier manifeste.

http://mahesg.wordpress.com/2007/07/30/adding-manifest-to-net-application/

+0

Cela semblait prometteur mais dans VS2010 je ne pouvais pas le faire fonctionner. J'ai une erreur sur l'une des étapes. – webdad3

0

J'ai autour des privilèges d'administration en ajoutant le « Dossier d'application des données de l'utilisateur » en cliquant à droite sur « système de fichiers sur la machine cible » et déplacé tous les fichiers du « dossier d'application » en elle. La configuration demande toujours le répertoire d'installation mais elle est ignorée. Les raccourcis peuvent toujours être configurés normalement. Il installe dans le répertoire suivant sur Win7 C: \ Utilisateurs \ nom d'utilisateur \ AppData \ Roaming Sous XP, il va un peu où sous le dossier documents et paramètres.

J'ai demandé pourquoi google chrome ne nécessite pas d'autorisation et a trouvé qu'il était installé dans un dossier légèrement différent C: \ Utilisateurs \ nom d'utilisateur \ AppData \ Local \ Google \ Chrome \ Application.

Questions connexes