Comment puis-je définir des variables d'environnement spécifiques lors du débogage dans Visual Studio?
Sur un projet de bibliothèque de classes, j'ai mis le "Début de l'Action dans l'onglet Debug dans les propriétés du projet pour "Démarrer le programme externe (NUnit dans ce cas). Je veux définir une variable d'environnement dans l'environnement ce programme est lancé. Comment dois-je faire? (Est-ce même possible?)
EDIT:
C'est une variable d'environnement qui influe sur tout .NET applications (COMplus_Version, il définit la version du moteur d'exécution) afin de le définir à l'échelle du système n'est pas vraiment une option.
Comme une solution de contournement, j'ai juste forcé NUnit pour commencer à droite .NET version (2.0) par la mise en nunit.exe.config
, mais malheureusement, cela signifie également tous mes .NET 1.1 les tests unitaires sont maintenant également exécuter dans .NET 2.0. Je devrais probablement juste de faire une copie de l'exécutable, donc il peut avoir son propre fichier de configuration...
(Je suis maintenir ouverte la question (ne pas accepter une réponse) dans le cas où quelqu'un arrive à trouver comment (il peut être utile à d'autres fins aussi, après tout...))
- Voulez-vous une variable d'environnement spécifiquement pour ce programme d'un seul?
Vous devez vous connecter pour publier un commentaire.
Dans Visual Studio; 2008 et Visuels Studio; 2005 au moins, vous pouvez spécifier les changements de variables d'environnement dans les paramètres du projet.
Ouvrez votre projet. Aller à Projet -> Propriétés... Dans les Propriétés de Configuration -> Débogage, de modifier l '"Environnement" de la valeur à définir des variables d'environnement.
Par exemple, si vous souhaitez ajouter le répertoire "c:\foo\bin" pour le chemin d'accès lorsque le débogage de votre application, de définir l '"Environnement" valeur "PATH=%PATH%;c:\foo\bin".
Visual Studio 2003 ne semble pas vous permettre de définir des variables d'environnement pour le débogage.
Ce que je fais en C/C++ est l'utilisation
_putenv()
dansmain()
et de définir toutes les variables. Habituellement, je l'entourent avec un#if defined DEBUG_MODE /#endif
pour vous assurer que seules certaines versions ont.Je crois que vous pouvez faire la même chose avec C# à l'aide du système d'exploitation.putenv(), c'est à dire
Ces va définir le envrironment variable pour que le processus du shell, et que telle est éphémère, ce qui est ce que vous cherchez.
Par le façon, il est bon d'utiliser process explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), qui est un outil de sysinternals. Vous pouvez voir ce qu'est une donnée du processus de copie des variables d'environnement est, de sorte que vous pouvez vérifier que ce que vous définissez est ce que tu as.
Dans Visual Studio et C#, vous pouvez utiliser:
Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");
Mais vous aurez besoin de l'espace de noms suivant
vous pouvez consulter la liste complète des variables avec ceci:
De départ avec NUnit 2.5, vous pouvez utiliser /cadre de l'interrupteur par exemple:
C'est à partir de NUnit de pages d'aide.
Si vous ne pouvez pas utiliser les fichiers bat pour configurer votre environnement, votre seulement option est de mettre en place un système à l'échelle de la variable d'environnement. Vous pouvez les trouver en faisant
Je ne sais pas si vous seriez obligé de redémarrer visual studio, mais semble peu probable. HTH
Configurer un fichier de commandes que vous pouvez invoquer. Passer le chemin d'accès du fichier de commandes, et d'avoir le fichier de commandes définir la variable d'environnement puis d'appeler NUnit.
Que les environnements sont hérités du processus parent, vous pourriez écrire un add-in pour Visual Studio qui modifie les variables d'environnement avant d'effectuer le départ. Je ne suis pas sûr de savoir comment facile qui serait à mettre dans votre processus.