Sobre un proyecto de biblioteca de clases, me puse el «Inicio de la Acción» en la Depuración de la ficha de propiedades del proyecto para «Iniciar programa externo» (NUnit en este caso). Quiero establecer una variable de entorno en el entorno de este programa se inicia en. ¿Cómo puedo hacer eso? (Es posible?)

EDICIÓN:

Es una variable de entorno que influye en todos .NET applications (COMplus_Version, establece la versión de tiempo de ejecución) para la configuración de todo el sistema no es realmente una opción.

Como una solución acabo de obligado NUnit para iniciar en derecho .NET versión (2.0), estableciendo en nunit.exe.config, aunque, desafortunadamente, esto también significa que todos los mi .NET 1.1 las pruebas unitarias son ahora también se ejecutan en .NET 2.0. Probablemente debería simplemente hacer una copia del ejecutable de manera que pueda tener su propio archivo de configuración…

(Estoy manteniendo abierta la pregunta (no aceptación de una respuesta) en caso de que a alguien le suceda a averiguar cómo (puede ser útil para otros propósitos también, después de todo…))

  • ¿Quieres una variable de entorno específicamente para este programa sólo?
InformationsquelleAutor Tobi | 2008-09-19

7 Comentarios

  1. 69

    En Visual Estudio 2008 y Visual Estudio 2005, al menos, puede especificar los cambios en las variables de entorno en la configuración del proyecto.

    Abre el proyecto. Ir a Proyecto -> Propiedades… en Propiedades de Configuración -> Depuración, editar el ‘Medio’ de valor para establecer variables de entorno.

    Por ejemplo, si desea agregar el directorio «c:\foo\bin» a la ruta cuando la depuración de la aplicación, establecer el «medio Ambiente» valor «PATH=%PATH%;c:\foo\bin».

    ¿Cómo puedo establecer las variables de entorno cuando la depuración en Visual Studio?

    • Estoy usando VS2008, y mis propiedades del proyecto no tiene «Propiedades de Configuración» o «Depuración» en él. No puedo encontrar nada sobre las variables de entorno en cualquier lugar en virtud de las propiedades del proyecto. ¿Qué estoy haciendo mal?
    • Voy a editar este post con una captura de pantalla de donde la configuración.
    • Hola, ¿cómo llegaste a esta pantalla? En mi VS2008 y VS2005 propiedades del proyecto parecen mirar de manera diferente, y que no tienen la configuración del entorno
    • Esta es de las propiedades de C/C++ proyectos. Supongo que estás usando C# o VB.NET
    • Hola, a todos. Me di cuenta de que varios de mis desarrolladores, que trabajan en C++, también no podía ver a estas propiedades. Al final resultó ser cómo MSVC fue instalado. Cuando se reinstaló MSVC con cada opción habilitada, ellos fueron capaces de ver todas estas propiedades, junto con otras funciones del IDE.
    • lamentablemente, este no está disponible para la depuración remota.
    • También parece no estar disponible para proyectos Web.
    • Hay un bug que impide agregar varias variables. Vea la solución en : connect.microsoft.com/VisualStudio/feedback/details/739477/…
    • La captura de pantalla no parece estar disponible (está en blanco) – enlace roto?
    • Fijo.
    • Nada remotamente parecido a este en VS2017

  2. 8

    En Visual Studio para Mac y C# se puede utilizar:

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

    Pero se necesita el siguiente espacio de nombres

    using System.Collections;
    

    usted puede consultar la lista completa de las variables con esto:

    foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
                Console.WriteLine("  {0} = {1}", de.Key, de.Value);
    
    • OMG, he estado buscando la última media hora para encontrar que la simple llamada de medio Ambiente.SetEnvironmentVariable(). Gracias!
  3. 6

    Visual Studio 2003, no parece que le permite establecer las variables de entorno para la depuración.

    Lo que tengo que hacer en C/C++ es el uso de _putenv() en main() y establece que ninguna de las variables. Por lo general me rodean con un #if defined DEBUG_MODE /#endif para asegurarse de que sólo ciertas construye la tienen.

    _putenv("MYANSWER=42");
    

    Yo creo que se puede hacer lo mismo con C# os.putenv(), es decir,

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

    Estos establecerá el envrironment variable para que el proceso de shell sólo, y como tal es efímera, que es lo que usted está buscando.

    Por el camino, su buen uso de process explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx), que es una herramienta de sysinternals. Usted puede ver lo que un determinado proceso de’ copia de las variables de entorno, por lo que se puede validar que lo que se establece es lo que tenemos.

  4. 0

    Si usted no puede utilizar archivos bat para configurar su entorno, entonces su única probabilidad opción es la creación de un amplio sistema de variable de entorno. Usted puede encontrar estas haciendo

    1. Clic derecho en «Mi pc»
    2. Seleccione propiedades
    3. Seleccione la pestaña «avanzado»
    4. Haga clic en «variables de entorno» botón
    5. En el «variables del Sistema» en la sección de agregar la nueva variable de entorno que te deseo
    6. «Aceptar» todo el camino para aceptar los cambios

    No sé si tendrías que reiniciar visual studio, pero parece poco probable. HTH

    • Marca, creo que el requisito para el medio ambiente el programa fue iniciado en el, no por el usuario o entornos de sistema.
    • Sí, es una variable de entorno que influye en todos .NET aplicaciones (COMplus_Version, establece versión de tiempo de ejecución) para la configuración de todo el sistema no es realmente una opción.
    • Yup – echaba de menos eso. Lo siento.
    • Tengo thru mediante la definición de una variable de Entorno de usuario (Mi pc > Propiedades > Avanzado). Iniciar una nueva instancia del intérprete de comandos y echo %NEW_VAR% sólo para estar seguro. Inicie una nueva instancia de devenv y depuración de distancia.
  5. 0

    Configurar un archivo de proceso por lotes que puede invocar. Pasar la ruta de acceso al archivo por lotes, y tener el archivo de proceso por lotes establecer la variable de entorno y, a continuación, invocar NUnit.

    • Visual Studio se niega a aceptar cualquier cosa, pero los ejecutables (.exe) en la ruta de acceso para iniciar el programa.
  6. 0

    Como entornos se heredan de los padres de proceso, podría escribir un add-in para Visual Studio que modifica sus variables de entorno antes de realizar el inicio. No estoy seguro de lo fácil que sería poner en su proceso.

Dejar respuesta

Please enter your comment!
Please enter your name here