Domanda

Sto cercando di creare un processo in questo modo:

var psi = new ProcessStartInfo
{
    FileName = @"%red_root%\bin\texturepreviewer.exe",
    UseShellExecute = true
};

var process = Process.Start(psi);
process.WaitForExit();

Ora la variabile d'ambiente "red_root" esiste sicuramente nel processo generato variabili d'ambiente, ma l'esecuzione non sembra per espandere la variabile d'ambiente e in modo che il file non viene trovato. Come posso ottenere il Process.Start per espandere la variabile d'ambiente nel nome del file?

È stato utile?

Soluzione

Il Environment.ExpandEnvironmentVariables metodo dovrebbe aiutare qui.

  

Sostituisce il nome di ogni ambiente   variabile incorporato nel specificato   stringa con la stringa equivalente di   il valore della variabile, quindi   restituisce la stringa risultante.

string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe";   
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath);

Altri suggerimenti

Hai provato System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)?

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