Comment définir des variables d'environnement spécifiques lors du débogage dans Visual Studio?

StackOverflow https://stackoverflow.com/questions/100543

Question

Sur un projet de bibliothèque de classe, j'ai défini la " action de démarrage " sous l'onglet Débogage des propriétés du projet sur " Démarrer le programme externe " ( NUnit dans ce cas). Je souhaite définir une variable d'environnement dans l'environnement dans lequel ce programme a été démarré. Comment puis-je procéder? (Est-ce même possible?)

EDIT:

Il s’agit d’une variable d’environnement qui influe sur toutes les applications .NET (COMplus_Version, elle définit la version d’exécution). Il n’est donc vraiment pas possible de la configurer à l’échelle du système.

En guise de solution de contournement, je viens de forcer NUnit à démarrer dans la bonne version .NET (2.0) en le configurant dans nunit.exe.config. Malheureusement, cela signifie également que tous mes tests unitaires .NET 1.1 sont désormais également exécutés dans .NET 2.0. Je devrais probablement juste faire une copie de l'exécutable pour qu'il puisse avoir son propre fichier de configuration ...

(Je garde la question ouverte (sans accepter de réponse) au cas où quelqu'un découvrirait comment (après tout, il pourrait être utile à d'autres fins ...))

Était-ce utile?

La solution

Dans Visual & nbsp; Studio & nbsp; 2008 et Visual & nbsp; Studio & nbsp; 2005 au moins, vous pouvez spécifier des modifications aux variables d'environnement dans les paramètres du projet.

Ouvrez votre projet. Aller au projet - & Gt; Propriétés ... Sous Propriétés de configuration - & Gt; Lors du débogage, éditez la valeur "Environment" pour définir les variables d'environnement.

Par exemple, si vous souhaitez ajouter le répertoire " c: \ foo \ bin " lors du débogage de votre application, définissez la valeur "Environment" sur & "PATH =% PATH%; c: \ foo \ bin &".

 Voici une capture d

Autres conseils

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 d'utiliser _putenv() dans main() et de définir des variables. Habituellement, je l’entoure d'un #if defined DEBUG_MODE / #endif pour m'assurer que seules certaines versions en disposent.

_putenv("MYANSWER=42");

Je pense que vous pouvez faire la même chose avec C # en utilisant os.putenv (), c'est-à-dire.

os.putenv('MYANSWER', '42');

Ceci définira la variable envrironment pour ce processus shell uniquement. Il s'agit donc d'un paramètre éphémère, ce que vous recherchez.

En passant, il est bon d’utiliser l’explorateur de processus ( http: // technet.microsoft.com/en-us/sysinternals/bb896653.aspx ), qui est un outil sysinternals. Vous pouvez voir ce qu'est la copie des variables d'environnement d'un processus donné, ce qui vous permet de valider ce que vous définissez est ce que vous avez obtenu.

Dans Visual Studio pour Mac et C #, vous pouvez utiliser:

Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");

Mais vous aurez besoin de l'espace de noms suivant

using System.Collections;

vous pouvez vérifier la liste complète des variables avec ceci:

foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
            Console.WriteLine("  {0} = {1}", de.Key, de.Value);

À partir de NUnit 2.5, vous pouvez utiliser / framework switch, par exemple:

nunit-console myassembly.dll /framework:net-1.1

Il s'agit de la des pages d'aide de NUnit .

Si vous ne pouvez pas utiliser de fichiers bat pour configurer votre environnement, votre seule option probable est de configurer une variable d'environnement à l'échelle du système. Vous pouvez les trouver en faisant

  1. Cliquez avec le bouton droit de la souris sur & "Poste de travail &";
  2. .
  3. Sélectionner des propriétés
  4. Sélectionnez le "ient avancé " onglet
  5. Cliquez sur les & variables d'environnement " bouton
  6. Dans le " Variables système " section, ajoutez la nouvelle variable d’environnement souhaitée
  7. " ok " tout le chemin pour accepter vos modifications

Je ne sais pas si vous devez redémarrer Visual Studio, mais cela semble peu probable. HTH

Configurez un fichier de commandes que vous pouvez appeler. Indiquez le chemin d'accès au fichier de commandes et demandez-leur de définir la variable d'environnement, puis appelez NUnit.

Les environnements étant hérités du processus parent, vous pouvez écrire un complément pour Visual Studio qui modifie ses variables d'environnement avant d'effectuer le démarrage. Je ne sais pas à quel point ce serait facile à mettre dans votre processus.

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