0

我一直在寻找答案至少 3 个小时,但没有成功。
到处都是代码片段,我不知道如何将它们连接在一起。

我想要实现的目标:
我正在创建 dotnet-tool,我需要在其中处理当前工作目录(使用pwdPS 中的命令打印的值)。Dotnet 工具将安装在默认目录 C:\Users\Samuel\.dotnet\.store\myTool... 但可以在 PS 中的任何目录中使用dotnet tool run myTool.

例如:
在 PS 我在:C:\Users\Samuel\AxisRepos> 并且我运行dotnet tool run myTool
在这种情况下,我想在 C# 代码中检索 C:\Users\Samuel\AxisRepos 以找出调用了哪个目录命令。

简单地说,我想在我的 dotnet 工具中做这样的事情:

class Program
{
    static void Main(string[] args)
    {
        var pwd = GetPwdFromPowerShell();
    }

    static string GetPwdFromPowerShell()
    {
        string pwd = "";

        // Retrieve current working directory from PS in which dotnet tool was invoked

        return pwd;
    }
}
4

1 回答 1

0

pwd只是Get-Location显示当前目录的别名...

从 c# 中,您可以使用内置的 .net 类,System.IO.Directory特别是该方法GetCurrentDirectory

因此,只需将您的代码更新为:

static string GetPwd()
{
    return System.IO.Directory.GetCurrentDirectory();
}

从 powershell 这将产生相同的结果:

[System.IO.Directory]::GetCurrentDirectory()
于 2021-08-19T10:38:45.630 回答