Trafiłem na tę stronę, ponieważ mam poufne informacje w moich parametrach wiersza poleceń i nie chciałem, aby były przechowywane w repozytorium kodu. Używałem zmiennych środowiskowych systemu do przechowywania wartości, które można ustawić na każdej maszynie kompilacji lub programistycznej w zależności od potrzeb. Rozszerzanie zmiennych środowiskowych działa świetnie w procesach Shell Batch, ale nie w programie Visual Studio.
Opcje uruchamiania programu Visual Studio:

Jednak program Visual Studio nie zwróci wartości zmiennej, ale nazwę zmiennej.
Przykład problemu:

Moim ostatecznym rozwiązaniem po wypróbowaniu kilku tutaj na SO było napisanie szybkiego wyszukiwania zmiennej środowiskowej w moim procesorze argumentów. Dodałem sprawdzanie% w przychodzącej wartości zmiennej, a jeśli zostanie znalezione, wyszukaj zmienną środowiskową i zamień wartość. Działa to w programie Visual Studio iw moim środowisku kompilacji.
foreach (string thisParameter in args)
{
if (thisParameter.Contains("="))
{
string parameter = thisParameter.Substring(0, thisParameter.IndexOf("="));
string value = thisParameter.Substring(thisParameter.IndexOf("=") + 1);
if (value.Contains("%"))
{ //Workaround for VS not expanding variables in debug
value = Environment.GetEnvironmentVariable(value.Replace("%", ""));
}
Dzięki temu mogę używać tej samej składni w moich przykładowych plikach wsadowych oraz podczas debugowania w programie Visual Studio. Żadne informacje o koncie ani adresy URL nie są zapisane w GIT.
Przykład użycia w partii
