Je crée un programme qui sera installé à l'aide du projet d'installation .net. Le programme écrit dans le répertoire des fichiers de paramètres dans le répertoire Program Files. Il pense qu'il existe des paramètres de répertoire actifs qui empêcheront l'application d'accéder à ce répertoire si un utilisateur limité exécute le programme. Est-il là pour modifier les paramètres pour le dossier de l'application à travers l'installation de sorte que ce ne sera pas un problème?Paramètres d'autorisation d'E/S avec l'installateur .net
Répondre
Écrire dans le dossier Program Files est une très mauvaise idée, vous devez supposer que cet emplacement est "en lecture seule" une fois installé. L'enregistrement des paramètres utilisateur dans Program Files entraîne des problèmes si plus de deux personnes utilisent l'ordinateur à la fois (par exemple, les services Terminal Server) dont les paramètres doivent être enregistrés, voulez-vous que les autres utilisateurs connaissent vos paramètres? Que se passe-t-il si votre programme écrit des paramètres dans le fichier en tant qu'utilisateur A, mais que l'utilisateur B ne peut pas modifier le fichier? L'utilisateur B peut avoir accès au répertoire, mais pas lire/supprimer le fichier de préférence car il appartient à l'utilisateur A.
Les anciens programmes win9x écrivent souvent dans le dossier des fichiers de programme, Windows Vista fait en réalité quelques supercheries pour les laisser les programmes fonctionnent. Lorsque votre programme écrit un fichier, vista le place dans un autre endroit accessible uniquement à cet utilisateur. La même chose est faite pour les écritures de registre à HKLM (ou si j'ai découvert après des heures de débogage ...) et Server 2008 fait la même chose.
Si vous besoin d'enregistrer les paramètres de l'utilisateur la meilleure solution serait d'enregistrer les paramètres dans le dossier Application Data (variable d'environnement% APPDATA%)
Si les paramètres sont l'ensemble du système, l'utilisateur administratif doit définissez-les après l'installation ou lors de la première exécution et ils ne doivent pas pouvoir être remplacés par des utilisateurs limités. Donc, pour répondre à votre question - OUI il y a un moyen de faire ce que vous avez demandé. Mais c'est une mauvaise idée, ce n'est pas sûr et cela va probablement causer des problèmes à long terme.
Vous pouvez écrire une classe d'installation personnalisée qui peut modifier les autorisations de sécurité du dossier. Cela suppose que l'installation est effectuée par un utilisateur autorisé à modifier la sécurité des fichiers/répertoires.
La meilleure option est de ne pas écrire du tout dans les répertoires sous Program Files.