Pergunta

Estou desenvolvendo uma auto-construtor que irá executar uma série de passos em nosso processo de construir e construir nosso aplicativo de destino. Nós costumávamos usar um arquivo de lote que criou um grupo de variáveis ??de ambiente ou chamados ferramentas que as variáveis ??de ambiente de configuração e, finalmente, executa um 'make'.

Estou usando a classe 'processo' que funciona muito bem para a execução desses comandos, mas, infelizmente, cada vez que um corridas que faz alterações no ambiente (como a adição de algo para o PATH) essas variáveis ??são perdidas quando da conclusão do 'processo' . O 'processo' ao lado é instanciado e herda o env a partir do aplicativo 'chamando' (meu exe) novamente - o que significa que toda a configuração env pelo último comando são perdidas. Como você lida com essa situação? Existe uma maneira melhor para executar uma série de batch-file como comandos dentro C # e manter o ambiente em que configurar?

Por favor note que, infelizmente, os velhos-escolares declararam que nant / ant não são uma opção tão "Ei, por que não usar Nant - ele faz isso!" não é a resposta que eu estou procurando.

Graças.

Foi útil?

Solução

eu gostaria de sugerir algum código que iria salvar suas variáveis ??de ambiente em um arquivo externo, e então você pode recuperar essas variáveis ??por meio do arquivo externo no início do seguinte processos.

Outras dicas

Bem, o método System.Environment.SetEnvironmentVariable () vai deixar você especificar o escopo de uma variável que você definir. É isso que você está procurando? Não tenho certeza que eu entendo.

Nós usamos CruiseControl.net para executar um script NAnt. Altamente recomendado.

O script NAnt pode ser invocado usando -D: opção de linha de comando para definir o equivalente de variáveis ??de ambiente.

Eu acho que o problema não está no especificar variáveis ??de ambiente personalizado aqui. (Você pode configurá-los via ProcessStartInfo.) O problema é em ler as alterações feitas a variáveis ??de ambiente pelos processos que estão sendo executados. Eu não tenho certeza se é possível. As únicas maneiras que eu sei variáveis ??de ambiente definidas para o processo em si e / ou para seus processos filhos. Eu não sei nenhuma maneira de variáveis ??de ambiente definidas para um processo pai.

As variáveis ??de ambiente não estão definidas e não podem ser definidas para o processo pai (*). Apenas para o processo atual e aqueles que ele cria -. Que faz parte do conceito

(*) além de, talvez, brincando com OS-internos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top