Domanda

Su un progetto libreria di classi, ho impostato il "Avvia" nella scheda Debug di proprietà del progetto per "Avviare un programma esterno" (NUnit in questo caso).Voglio impostare una variabile di ambiente in ambiente, questo programma è iniziato nel.Come faccio a fare che?(È possibile?)

EDIT:

E ' una variabile di ambiente che influenza tutti .NET applications (COMplus_Version, imposta la versione runtime) in modo che l'impostazione è a livello di sistema in realtà non è un'opzione.

Come soluzione ho appena forzato NUnit per iniziare a destra .NET versione (2.0) impostando nunit.exe.config, anche se, purtroppo, questo significa anche che tutti i miei .NET 1.1 unità di test eseguito anche in .NET 2.0.Probabilmente dovrei solo fare una copia del file eseguibile in modo che può avere il proprio file di configurazione...

(Sto tenendo aperta la questione (non accettare una risposta) nel caso in cui qualcuno dovesse accadere di scoprire come (potrebbe essere utile per altri scopi, dopo tutto...))

È stato utile?

Soluzione

In Visual Studio 2008 e Visual Studio 2005, almeno, è possibile specificare le modifiche alle variabili di ambiente nelle impostazioni del progetto.

Aprire il progetto.Vai al Progetto -> Proprietà...In Proprietà di Configurazione -> Debug, modificare l'Ambiente valore per impostare le variabili di ambiente.

Per esempio, se si desidera aggiungere la directory "c:\foo\bin" il percorso quando il debug dell'applicazione, impostare l '"Ambiente" valore "PATH=%PATH%;c:\foo\bin".

Here

Altri suggerimenti

Visual Studio 2003 non sembra consentono di impostare le variabili di ambiente per il debug.

Cosa posso fare in C/C++ è utilizzare _putenv() in main() e impostare tutte le variabili.Di solito mi circondano con un #if defined DEBUG_MODE / #endif per assicurarsi che solo alcuni costruisce l'hanno.

_putenv("MYANSWER=42");

Io credo che tu possa fare la stessa cosa con C# che utilizza os.putenv(), cioè

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

Questi saranno di impostare il envrironment variabile per il processo shell solo, e come tale è una effimera impostazione, che è quello che stai cercando.

A proposito, il suo bene usare process explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), che è uno strumento di sysinternals.Si può vedere ciò che un determinato processo di copia delle variabili di ambiente è, in modo che è possibile convalidare che cosa si imposta è quello che avete ottenuto.

In Visual Studio per Mac e C# è possibile utilizzare:

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

Ma sarà necessario il seguente spazio dei nomi

using System.Collections;

è possibile controllare l'elenco completo delle variabili con questo:

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

Partenza con NUnit 2.5, è possibile utilizzare /quadro interruttore per esempio:

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

Questo è da NUnit pagine di aiuto.

Se non è possibile utilizzare un file bat per impostare l'ambiente, quindi l'unica probabile opzione è quella di impostare un sistema di larghezza variabile di ambiente.È possibile trovare questi facendo

  1. Fare clic destro "risorse del Computer"
  2. Selezionare proprietà
  3. Selezionare la scheda "avanzate"
  4. Fare clic su "variabili d'ambiente" pulsante
  5. In "variabili di Sistema" sezione, aggiungere la nuova variabile di ambiente che si desidera
  6. "Ok" in modo da accettare le modifiche

Non so se è necessario riavviare visual studio, ma sembra improbabile.HTH

Impostare un file batch che è possibile richiamare.Passare il percorso del file batch, e hanno il file batch impostare la variabile di ambiente e quindi richiamare NUnit.

Come ambienti sono ereditati dal processo padre, si potrebbe scrivere un add-in per Visual Studio che modifica le variabili d'ambiente prima di eseguire l'avvio.Io non sono sicuro di come è facile mettere nel vostro processo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top