[MyNamespace.MyClass]-6ren">
gpt4 book ai didi

c# - 从 Powershell 调用的 DLL 的当前目录错误

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

我有一个带有静态方法的 DLL,它想知道当前目录。我加载库

c:\temp> add-type -path "..."

...并调用该方法

c:\temp> [MyNamespace.MyClass]::MyMethod()

但是 Directory.GetCurrentDirectory() 和 .Environment.CurrentDirectory 获取当前目录都是错误的...

正确的方法是什么?

最佳答案

在 powershell 中可以有两个可能的“目录”。第一个是进程的当前目录,可通过 Environment.CurrentDirectoryDirectory.GetCurrentDirectory() 获取。另一个“目录”是当前Powershell Provider 中的当前位置。这是您在命令行中看到的内容,可以通过 get-location cmdlet 获得。当您使用set-location(别名cd)时,您正在更改此内部路径,而不是进程的当前目录。

如果您想要某个 .NET 库使用进程的当前目录来获取当前位置,那么您需要显式设置它:

[Environment]::CurrentDirectory = get-location

Powershell 具有可扩展模型,允许像文件系统中的驱动器一样安装不同的数据源。文件系统只是众多提供者之一。您可以通过 get-psprovider 查看其他提供程序。例如,注册表提供程序允许像文件系统一样导航 Windows 注册表。另一个“函数”可让您通过 dir function: 查看所有函数。

关于c# - 从 Powershell 调用的 DLL 的当前目录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18862716/

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