Saya datang ke halaman ini karena saya memiliki informasi sensitif dalam parameter baris perintah saya, dan tidak ingin mereka disimpan dalam repositori kode. Saya menggunakan variabel Lingkungan Sistem untuk menyimpan nilai, yang dapat disetel pada setiap mesin pembangunan atau pengembangan sesuai kebutuhan untuk setiap tujuan. Ekspansi Variabel Lingkungan berfungsi dengan baik dalam proses Batch Shell, tetapi tidak dengan Visual Studio.
Opsi Mulai Visual Studio:
Namun, Visual Studio tidak akan mengembalikan nilai variabel, tetapi nama variabel.
Contoh Masalah:
Solusi terakhir saya setelah mencoba beberapa di sini di SO adalah menulis pencarian cepat untuk variabel Lingkungan di Prosesor Argumen saya. Saya menambahkan tanda centang untuk% dalam nilai variabel yang masuk, dan jika ditemukan, cari Variabel Lingkungan dan ganti nilainya. Ini berfungsi di Visual Studio, dan di lingkungan Build saya.
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("%", ""));
}
Ini memungkinkan saya untuk menggunakan sintaks yang sama di file batch sampel saya, dan dalam debugging dengan Visual Studio. Tidak ada informasi akun atau URL yang disimpan di GIT.
Contoh Penggunaan dalam Batch