C# WinForms PING 在调试器中使用命令行参数工作,但在手动启动时不工作

C# WinForms PING Works in debugger with command line parameters but not when manually launched

如果我在没有命令行参数的情况下启动我的应用程序,然后提供一台计算机进行连接,一切正常。

如果我使用命令行参数配置调试模式并启动应用程序,它工作正常。

如果我使用 visual studio 之外的命令行参数启动应用程序,则会出现问题...

如果我不通过注释掉执行此操作的代码来 Ping 机器以确保它在那里(通过命令行传递),则没有问题...

如果我将代码留给它来 ping 一台机器,当从带有参数的命令行 运行 时我会遇到问题...

如果我在 AD 中搜索机器,我会遇到同样的问题...

我从 ping 中得到的错误似乎是 DNS 问题,因为它 returns 找不到主机。

我从 AD 检查中得到的错误是找不到网络路径。

我启动了一个"MessageBox.Show("\""+Host\"\"");"在进行检查之前,传递的参数是正确的。

有什么想法吗?

我是 运行 Visual Studio 2015 年,使用 AnyCPU 和 .Net 4.6.1 进行编译

这是我的 PingComputer 和 ComputerExistsInAD 代码:

    public static bool PingComputer(string SystemName, int Timeout = 5000)
    {
        try { return (new Ping()).Send(SystemName, Timeout).Status == IPStatus.Success; } catch { }
        return false;
    }

    public static bool ComputerExistsInAD(string SystemName)
    {
        try
        {
            PrincipalContext Context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName);
            ComputerPrincipal Principal = new ComputerPrincipal(Context);
            Principal.Name = SystemName;
            PrincipalSearcher Searcher = new PrincipalSearcher();
            Searcher.QueryFilter = Principal;
            return Searcher.FindOne() != null;
        }
        catch { }
        return false;
    }

似乎是 .Net 4.6.1 的问题...我回到 4.5.2,现在无需任何其他更改即可运行...