PowerShell v5.0.10586.117 sürümüne yükseltildim ve şimdi AppSettings'e app.config dosyasından erişemiyorum. Kod, PowerShell v4 ile çalışır (v4 yüklü diğer bilgisayarlarda denedim ve verileri AppSettings'den döndürür). PowerShell 5 AppSettings Hata mı?
Ben PowerShell[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $AppConfigPath)
ben Güncel Alan
[System.AppDomain]::CurrentDomain.GetData("APP_CONFIG_FILE")
getiri PATH\App.config
ama acelem
[System.Configuration.ConfigurationManager]::AppSettings.count
PowerShell v5 döner:
ancak PowerShell v4 üzerinde 0
(Windows 7, Windows Server 2008 R2 Enterprise, vb) döndürür:
5
Neden davranış PowerShell 4 vs PowerShell 5 farklı olurdu? Bu bir hata mı? Uygulama Ayarları sorununu nasıl çözebilirim?
Ben bu işi $ retval kullanarak mevsimliği ile
$configFile = System.Configuration.ConfigurationManager]::OpenExeConfiguration([System.Configuration.ConfigurationUserLevel]::None)
$settings = $configFile.AppSettings.Settings
$retVal = $settings[$keyName].Value
$configFile.Save([System.Configuration.ConfigurationSaveMode]::Modified)
[System.Configuration.ConfigurationManager]::RefreshSection($configFile.AppSettings.SectionInformation.Name)
ile bir iş-etrafında yapıyor denedi, ben AppSettings'i dışarı veri alabilirsiniz ben bekleniyor, ancak daha sonra App Yapı verilerinin varolmasını beklediğim bir .dll dosyasında başarısız oluyor.
[Güncelleştirme 1]: Windows 8, Windows 8.1 ve Server 2012'de PowerShell 5'e yükselttim ve aynı sorunu aldım. Test ettiğim tüm PowerShell 5 örneklerinde olduğunu belirtmek için Başlık ve sorun açıklaması güncellendi.
[Güncelleme 2]:
Başına @PetSerAl, ben ayar dosyası önce appSetting'in elde etmeye çalışmak eğer PowerShell v4 de aynı sorunu sahip olacağını keşfettik
[System.Configuration.ConfigurationManager]::AppSettings
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $AppConfigPath)
[System.Configuration.ConfigurationManager]::AppSettings.Count
PowerShell v4'te 0
döndürür. Ben C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.config
benim app yapılandırma dosyasını taşırsanız
sonra veriyi dönen bir sorunu yok, ne de ben bu uygulama yapılandırma
Eğer PowerShell v4 ile ilk olarak '[System.Configuration.ConfigurationManager] :: AppSettings' 'ı [System.AppDomain] :: CurrentDomain.SetData (" APP_CONFIG_FILE ", $ AppConfigPath)' dan önce sorarsanız, o zaman aynı sorun olur mu? ? – PetSerAl
'[System.Configuration.ConfigurationManager] :: AppSettings' (* *) geçerli etki alanının uygulama yapılandırma dosyasında tanımlanan AppSettings bölümünü döndürür. Uygulama yapılandırma dosyasını tanımlamadan AppSettings'i çağırırsanız, varsayılan olarak 'C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe olarak ayarlanır.Ben test ettiğim sistemlerde mevcut olmayan config. Mevcut olmadığı için, AppSettings bölümü için hiçbir şey iade etmedi. Dosyayı oluşturmayı deneyebilirim, ancak test etmeye çalıştığınız şeyden emin değilim. – rogergarrison
'[System.Configuration.ConfigurationManager] :: AppSettings; [System.AppDomain] :: CurrentDomain.SetData ("APP_CONFIG_FILE", $ AppConfigPath); [System.Configuration.ConfigurationManager] :: AppSettings'. Yapılandırma dosyanızdan veriyi '[System.Configuration.ConfigurationManager] :: AppSettings''e ikinci erişimde döndürüyor mu? – PetSerAl