it-swarm.com.de

Wie lege ich beim Debuggen in Visual Studio bestimmte Umgebungsvariablen fest?

In einem Klassenbibliotheksprojekt habe ich in den Projekteigenschaften auf der Registerkarte Debug die Option "Aktion starten" auf "Externes Programm starten" gesetzt ( NUnit in diesem Fall). Ich möchte eine Umgebungsvariable in der Umgebung festlegen, in der dieses Programm gestartet wird. Wie mache ich das? (Ist es überhaupt möglich?)

BEARBEITEN:

Es ist eine Umgebungsvariable, die alle .NET-Anwendungen beeinflusst (COMplus_Version, setzt die Laufzeitversion), so dass es keine Option ist, sie systemweit festzulegen.

Als Workaround habe ich NUnit gezwungen, in der richtigen .NET-Version (2.0) zu starten, indem ich es in nunit.exe.config, obwohl dies leider auch bedeutet, dass alle meine .NET 1.1-Komponententests jetzt auch in .NET 2.0 ausgeführt werden. Ich sollte wahrscheinlich nur eine Kopie der ausführbaren Datei erstellen, damit sie eine eigene Konfigurationsdatei haben kann ...

(Ich halte die Frage offen (ich akzeptiere keine Antwort), falls jemand herausfindet, wie (es könnte doch auch für andere Zwecke nützlich sein ...))

49
Tobi

Zumindest in Visual Studio 2008 und Visual Studio 2005 können Sie Änderungen an Umgebungsvariablen in den Projekteinstellungen angeben.

Öffnen Sie Ihr Projekt. Gehen Sie zu Projekt -> Eigenschaften ... Bearbeiten Sie unter Konfigurationseigenschaften -> Debuggen den Wert 'Umgebung', um Umgebungsvariablen festzulegen.

Wenn Sie beispielsweise beim Debuggen Ihrer Anwendung das Verzeichnis "c:\foo\bin" zum Pfad hinzufügen möchten, setzen Sie den Wert "Environment" auf "PATH =% PATH%; c:\foo\bin".

Here's a screenshot of the settings dialog

69
John Dibling

In Visual Studio 2003 können Sie anscheinend keine Umgebungsvariablen für das Debuggen festlegen.

In C/C++ verwende ich _putenv() in main() und setze alle Variablen. Normalerweise umgebe ich es mit einem #if defined DEBUG_MODE / #endif um sicherzustellen, dass es nur bestimmte Builds haben.

_putenv("MYANSWER=42");

Ich glaube, Sie können dasselbe mit C # tun, indem Sie os.putenv () verwenden, d. H.

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

Dadurch wird die Umgebungsvariable nur für diesen Shell-Prozess festgelegt, und als solche handelt es sich um eine kurzlebige Einstellung, nach der Sie suchen.

Übrigens ist es gut, den Prozess-Explorer ( http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx ) zu verwenden, der ein Sysinternals-Tool ist. Sie können sehen, wie die Kopie der Umgebungsvariablen eines bestimmten Prozesses aussieht, sodass Sie überprüfen können, ob das, was Sie festgelegt haben, das ist, was Sie haben.

6
Jamie

In Visual Studio für Mac und C # können Sie Folgendes verwenden:

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

Sie benötigen jedoch den folgenden Namespace

using System.Collections;

sie können die vollständige Liste der Variablen folgendermaßen überprüfen:

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

Ab NUnit 2.5 können Sie den/framework-Schalter verwenden, z.

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

Dies ist aus NUnits Hilfeseiten .

1
tymtam

Wenn Sie bat-Dateien nicht zum Einrichten Ihrer Umgebung verwenden können, können Sie nur eine systemweite Umgebungsvariable einrichten. Sie können diese finden, indem Sie tun

  1. Rechtsklick auf "Arbeitsplatz"
  2. Eigenschaften auswählen
  3. Wählen Sie die Registerkarte "Erweitert"
  4. Klicken Sie auf die Schaltfläche "Umgebungsvariablen"
  5. Fügen Sie im Abschnitt "Systemvariablen" die gewünschte neue Umgebungsvariable hinzu
  6. Klicken Sie auf "OK", um Ihre Änderungen zu akzeptieren

Ich weiß nicht, ob Sie Visual Studio neu starten müssen, aber es scheint unwahrscheinlich. HTH

0
Mark

Da Umgebungen vom übergeordneten Prozess geerbt werden, können Sie ein Add-In für Visual Studio schreiben, das die Umgebungsvariablen ändert, bevor Sie den Start durchführen. Ich bin mir nicht sicher, wie einfach das in Ihren Prozess zu integrieren wäre.

0
Jeff Yates

Richten Sie eine Batch-Datei ein, die Sie aufrufen können. Übergeben Sie den Pfad der Stapeldatei, und legen Sie in der Stapeldatei die Umgebungsvariable fest. Rufen Sie dann NUnit auf.

0
OJ.