Vra

Op 'n klas biblioteek projek, ek het die "Aksie Start" op die blad Debug van die projek eienskappe na "Begin eksterne program" ( NUnit in hierdie geval). Ek wil 'n omgewing veranderlike in die omgewing van hierdie program is begin in te stel. Hoe kan ek dit doen? (Is dit selfs moontlik?)

EDIT:

Dit is 'n omgewing veranderlike wat al NET programme beïnvloed (COMplus_Version, dit stel die runtime weergawe) so opstel dit stelsel wye regtig is nie 'n opsie.

As 'n oplossing wat ek net gedwing NUnit om te begin in die regte NET weergawe (2.0) deur dit in nunit.exe.config, maar ongelukkig beteken dit ook al my NET 1.1 eenheid toetse word nou ook uit te voer in NET 2.0. Ek moet seker net 'n afskrif van die uitvoerbaar te maak, sodat dit sy eie konfigurasielêer kan hê ...

(ek hou van die vraag oop (nie aanvaar 'n antwoord) in geval iemand gebeur om uit te vind hoe (dit dalk wees bruikbare vir ander doeleindes te immers wees ...))

Was dit nuttig?

Oplossing

In Visual Studio 2008 en Visual Studio 2005 ten minste, kan jy veranderinge aan die omgewing veranderlikes spesifiseer in die projek instellings.

Maak jou projek. Gaan na Project -> Properties ... Onder Configuration Properties -.> Ontfouting, wysig die "Environment 'n waarde aan omgewing veranderlikes stel

Byvoorbeeld, as jy wil die gids te voeg "c: \ cat \ bin" om die pad wanneer debugging jou aansoek, stel die "Environment 'n waarde aan" PATH =% PATH%; c: \ cat \ bin " .

 Hier is 'n kiekie van die dialoog instellings

Ander wenke

Visual Studio 2003 lyk nie toelaat om omgewing veranderlikes vir ontfouting.

Wat ek doen in C / C ++ is gebruik _putenv() in main() en stel enige veranderlikes. Gewoonlik ek omring dit met 'n #if defined DEBUG_MODE / #endif om seker net seker maak builds het dit.

_putenv("MYANSWER=42");

Ek glo jy kan dieselfde ding doen met C # gebruik van os.putenv (), d.w.z.

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

Dit sal die envrironment veranderlike vir net dat dop proses stel, en as sodanig is 'n kortstondige instelling, en dit is wat jy is op soek na.

By the way, sy goed om te ontdekkingsreisiger ( http: // technet.microsoft.com/en-us/sysinternals/bb896653.aspx ), wat 'n Sysinternals instrument. Jy kan sien wat 'n gegewe proses 'n afskrif van die omgewing veranderlikes is, sodat jy kan bevestig dat dit wat jy stel is wat jy het.

In Visual Studio vir Mac en C # wat jy kan gebruik:

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

Maar jy sal die volgende naamruimte nodig

using System.Collections;

Jy kan die volledige lys van veranderlikes te gaan met hierdie:

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

Begin met NUnit 2.5 wat jy kan gebruik / raamwerk skakelaar Bv:.

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

Dit is van NUnit se help-bladsye .

As jy nie kolf lêers kan gebruik om die opstel van jou omgewing, dan is jou enigste waarskynlike opsie is om 'n stelsel wye veranderlike omgewing. Jy kan hierdie vind deur te doen

  1. Regskliek "My Computer"
  2. Kies eienskappe
  3. Kies die "gevorderde" blad
  4. Klik op die knoppie "omgewing veranderlikes"
  5. In die "Stelsel veranderlikes" afdeling, voeg die nuwe omgewing veranderlike wat jy wil
  6. "Ok" al die pad uit om jou veranderinge te aanvaar

Ek weet nie of jy wil hê om visuele studio te begin, maar lyk onwaarskynlik. HTH

Stel 'n bondel lêer wat jy kan roep. Slaag die pad die bondel lêer, en het die bondel lêer stel die omgewing veranderlike en dan roep NUnit.

As omgewings is geërf van die ouer proses, jy kan 'n add-in vir Visual Studio dat sy omgewing veranderlikes verander voordat jy die begin voer skryf. Ek is nie seker hoe maklik dit sou wees in jou proses te sit.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top