gpt4 book ai didi

.net - Powershell 调用使用 App.config 的 .NET 程序集

转载 作者:行者123 更新时间:2023-12-03 12:06:29 25 4
gpt4 key购买 nike

我有一个 Powershell 脚本,它正在加载一个 .NET 程序集(在我的例子中是 .EXE)并调用一个使用 app.config 拉取加密连接字符串的公共(public)方法。

该脚本将程序集的 exe.config 作为 powershell.exe.config 动态复制到 Powershell ($pshome) 文件夹,并且能够从我的开发框运行得很好。问题是它不能从标准的 Windows Server 2003 安装中运行。

我验证了 exe.config 已正确复制到 powershell 目录。我已经运行了 SysInternals Process Explorer 并验证了该进程正在访问配置文件(没有文件未找到消息)。我远程调试了 powershell.exe 实例,可以看到程序集加载正常,但无法访问 ConfigurationManager.AppSettings[...] 值(返回 null)。

我没主意了。我读过我可能可以使用单独的应用程序域,但我没有看到使用 Powershell 执行此操作的示例。

我的代码起到以下作用:

$absolute_path = "c:\foo.exe"
$config_path = $absolute_path + ".config"
copy "$config_path" "$pshome\powershell.exe.config" -Force
[Reflection.Assembly]::LoadFrom($absolute_path)
$foo = new-object MyFooAssembly.FooClass
$foo.DoSomething()

在 Vista 中代码有效,在 Windows Server 2003 中代码无效。

最佳答案

尝试:

[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $config_path)

关于.net - Powershell 调用使用 App.config 的 .NET 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com