Mit CurrentDomain.SetData("APP_CONFIG_FILE") funktioniert nicht in der PowerShell ISE
Versuche ich zu verwenden .NET 4.0 assembly in der PowerShell ISE, und zu versuchen, ändern Sie die config-Datei, die verwendet wird, über:
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $PathToConfig);
[Konfiguration.ConfigurationManager]::ConnectionStrings.Count gibt immer "1",
und "[Konfiguration.ConfigurationManager]::ConnectionStrings[0].Name" gibt immer "LocalSqlServer", und dass die ConnectionString-name ist nicht mein -".config" - Datei.
Beachten Sie, dass die Ausführung der PowerShell-Skript von einem PowerShell-Eingabeaufforderung funktioniert wie erwartet. Es ist nur, wenn ich führen Sie in PowerShell ISE, es funktioniert nicht wie erwartet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist, weil der Pfad zu der app.config für die PowerShell ISE bereits geladen und zwischengespeichert, so dass eine änderung der app.config Pfad danach nicht einen Unterschied machen:
stackoverflow.com/q/6150644/222748
Hier ist ein Beispiel-Skript, wird klar, dass die zwischengespeicherten Pfad, so funktioniert es unter der PowerShell ISE:
Ausziehen
[0]
für mich funktioniert.([Configuration.ConfigurationManager].Assembly.GetTypes() | where {$_.FullName -eq "System.Configuration.ClientConfigPaths"}).GetField("s_current", "NonPublic, Static").SetValue($null, $null)