Modification du "répertoire de débogage / travail" globalement (pas par utilisateur) dans VS2008
J'ai un C++ solution dans VS2008 avec de multiples projets. Cette solution contient des fichiers qui sont nécessaires lors de l'exécution, qui sont chargés selon un chemin par rapport à la solution répertoire (par exemple "Testing/data/" + "dataN.bin"
).
Pour que cette solution fonctionne, je dois définir le répertoire de travail réglage dans le projet(s) de sorte qu'il pointe vers la solution de répertoire (par exemple Configuration Properties >> Debugging >> Working Directory = $(SolutionDir)
). Cela fonctionne très bien lorsque je suis débogage sur mon propre PC. Toutefois, lorsqu'un autre utilisateur charge ma solution, ses projets n'ont pas cette propriété est définie correctement.
J'ai tracé ce paramétrage n'est pas stockées dans le fichier de projet (PROJECT.vcproj
), mais dans le fichier spécifique à l'utilisateur créé pour lui (PROJECT.vcproj.DOMAIN.USER.user
).
Je voudrais un moyen pour que ce paramètre être stockés pour TOUS les utilisateurs, sans avoir à régler manuellement, encore et encore.
Mes pensées étaient:
- Trouver un moyen de stocker cette dans le .vcproj fichier (pas propre à l'utilisateur) ou le fichier de solution.
- Trouver un moyen de créer un "par défaut-fichier spécifique à l'utilisateur", à partir de laquelle tous les paramètres spécifiques à l'utilisateur va commencer (et peut modifier à volonté plus tard).
Cependant, je n'ai pas trouver un moyen de le faire un de ces.
Un peu plus de notes /contraintes:
- J'ai besoin de travailler avec de nombreux gros fichiers comme ces ressources, donc je voudrais éviter d'effectuer des copies de répertoires différents.
- Les solutions doivent prendre en charge plusieurs configurations de build (debug, release, etc.).
- Je voudrais éviter de pré/post-scripts de compilation, si possible, de garder les choses simples (priorité faible).
Toute aide sera appréciée... merci à l'avance.
source d'informationauteur scooz
Vous devez vous connecter pour publier un commentaire.
Pas une telle propriété existe. Il y a des questions plus importantes, ce doit également travailler après le déploiement de votre solution. Le répertoire de travail alors ne va pas être un répertoire "solution", il n'en existe pas sur la machine cible.
Vous êtes beaucoup mieux de travailler à partir de l'hypothèse que le répertoire de travail est le même que le répertoire EXE. Qui sera la valeur par défaut à la fois pendant le débogage et sur la machine cible. Vous avez le plein contrôle sur l'emplacement de l'EXE fichier avec un éditeur de liens réglage. Et vous pouvez vous protéger de vous-même à partir d'un raccourci de l'exécution de votre programme avec un autre répertoire de travail par l'obtention du répertoire EXE dans votre code, de sorte que vous pouvez générer un chemin d'accès absolu. L'utilisation de GetModuleFileName(), passer la valeur NULL pour obtenir le chemin d'accès vers le fichier EXE.
Une autre solution standard est de copier tout type de ressources que l'EXE besoins d'un dossier relatif à l'établissement du dossier de sortie. Vous faites cela avec un Pré-créer un événement, faire de la ligne de commande ressemble à ceci:
Remarque comment l'option /d s'assure que la copie n'est effectuée que si le dossier de Test contenu modifié.
Exemple de PROJET.vcproj.fichier de l'utilisateur est fourni ci-dessous
Vous pourriez envisager d'utiliser des "Propriétés de Configuration/Générale/Répertoire de Sortie", ou "Propriétés de Configuration/Gestionnaire/fichier de Sortie', au lieu de le Débogueur/répertoire de travail. Ces paramètres sont par projet et non par l'utilisateur, et si vous laissez le répertoire de travail intact ce est la valeur par défaut pour l'application répertoire de travail.
Je me demande si ce serait possible, car un utilisateur peut ne pas avoir suffisamment de droits d'accès et de lecture/écriture pour le répertoire, je suppose que VS vérifie si un utilisateur a accès à un répertoire lorsque vous choisissez ce qui est probablement la raison pour laquelle il n'existe qu'un compte en fonction de l'option.