Question

Je suis entrain de créer un programme qui va être installé à l'aide de l' .net du projet de l'installateur.Le programme écrit dans les paramètres des fichiers de son répertoire dans le dossier Program Files dir.Il crois qu'il y a certains paramètres active directory qui empêchent l'application de redressement de ce répertoire si un utilisateur limité, est en cours d'exécution du programme.Est-il loin de modifier les paramètres pour le dossier de l'application par le biais de l'installer, donc ce ne sera pas un problème?

Était-ce utile?

La solution

L'écriture pour le dossier Program Files est une très mauvaise idée, vous devriez supposer que cet emplacement est en "lecture seule", une fois installé.

Enregistrement des paramètres de l'utilisateur dans les Fichiers de Programme provoque des problèmes si plus de deux personnes, l'utilisation de l'ordinateur à la fois (par exemple.Terminal Services), les paramètres doivent être enregistrés, voulez-vous de les autres utilisateurs à savoir "votre" paramètres?Qu'advient-il si votre programme écrit les paramètres dans le fichier que l'utilisateur A utilisateur B ne peut pas modifier le fichier?L'utilisateur B peut avoir accès à l'annuaire, mais pas lire/supprimer le fichier de préférences que c'est la propriété de l'utilisateur A.

Héritage win9x bien souvent, les programmes d'écriture pour le dossier program files, Windows Vista ne fait bien la ruse pour laisser ces programmes de travail.Lorsque votre programme écrit un fichier, vista se met-il à un autre endroit, qui n'est accessible qu'à l'utilisateur.Même chose pour le registre écrit HKLM (ou alors j'ai découvert après des heures de débogage...) et Server 2008 fait la même chose.

Si vous avez besoin d'économiser de l'utilisateur paramètres de la meilleure solution serait d'enregistrer les paramètres dans le dossier de Données d'Application (Variable d'Environnement %APPDATA%)

Si les paramètres sont à l'échelle du système, alors l'utilisateur d'administration doit définir ces après l'installation ou lors de la première exécution, et ils ne devraient pas être en mesure d'être écrasé par les utilisateurs limités.

Donc, pour répondre à votre question, OUI il existe un moyen de faire ce que vous avez demandé.Mais c'est une mauvaise idée, c'est d'insécurité et va probablement causer des problèmes dans le long terme.

Autres conseils

Vous pouvez écrire une classe d'installation personnalisée qui peut modifier les autorisations de sécurité du dossier.Cela suppose l'installation soit effectuée par un utilisateur qui a l'autorisation de modifier le fichier/répertoire de sécurité.

La meilleure option est de ne pas écrire dans les répertoires dans le dossier Program Files du tout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top