Я прийшов на цю сторінку, тому що у мене є конфіденційна інформація в параметрах мого командного рядка, і я не хотів, щоб вони зберігалися в сховищі коду. Я використовував змінні системного середовища для утримання значень, які можна було встановити на кожній машині збирання або розробки відповідно до потреб. Розширення з змінним середовищем чудово працює в процесах Shell Batch, але не у Visual Studio.
Параметри запуску Visual Studio:
Однак Visual Studio не поверне значення змінної, а ім'я змінної.
Приклад випуску:
Моє остаточне рішення після спроби декількох тут на SO було написати швидкий пошук змінної Environment у моєму процесорі аргументів. Я додав чек на% у вхідному значенні змінної, і якщо він знайдений, знайдіть змінну середовища та замініть це значення. Це працює і в Visual Studio, і в моєму середовищі побудови.
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("%", ""));
}
Це дозволяє мені використовувати один і той же синтаксис у моїх зразкових пакетних файлах та в налагодженні з Visual Studio. Інформація про обліковий запис або URL-адреси, збережені в GIT
Приклад Використання в партії