Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从UWP应用程序在.NET标准库中调用Process.GetProcesses()_C#_Uwp_.net Core_.net Standard 2.0 - Fatal编程技术网

C# 从UWP应用程序在.NET标准库中调用Process.GetProcesses()

C# 从UWP应用程序在.NET标准库中调用Process.GetProcesses(),c#,uwp,.net-core,.net-standard-2.0,C#,Uwp,.net Core,.net Standard 2.0,我有一个.NET标准库,如下所示: using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace process_library { public class ProcessHandler { public ProcessHandler() { } [MTAThread] publi

我有一个.NET标准库,如下所示:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace process_library
{
    public class ProcessHandler
    {
        public ProcessHandler()
        {

        }

        [MTAThread]
        public Process[] GetProcesses()
        {
            return Process.GetProcesses();
        }
    }
}
然后,我有一个Template10项目,其中所有.net核心内容都更新为最新版本(构建该项目所需的)并引用了我的库。到目前为止,这一切都有效

在我的主视图模型中,我实例化了我的库类

ProcessHandler p = new ProcessHandler();
这也是成功的

我的问题是,当我调用get进程方法时,它会呕吐并抛出错误 GenericParameterAttributes='((System.RuntimeType)类型)。GenericParameterAttributes'引发了类型为“System.InvalidOperationException”的异常

有什么办法可以让它工作吗

更新 删除了所有Template10的内容,因为它倾向于掩盖真正的错误,并尝试了一个空白的UWP应用程序。获取此异常

System.PlatformNotSupportedException
  HResult=0x80131539
  Message=Retrieving information about local processes is not supported on this platform.
如果你甚至不能使用它,那么把它包括在.net标准(它应该包含一组你可以使用的标准API)中有什么意义呢

我还应该注意到,我的目标是最新的更新(2018年春季)

表单,当您以应用程序或库中的框架为目标时,您指定了希望使应用程序或库可用的API集。您可以使用目标框架名字对象(TFM)在项目文件中指定目标框架

指定多个目标框架时,可以有条件地引用每个目标框架的程序集。在代码中,可以通过使用带有if-then-else逻辑的预处理器符号,有条件地对这些程序集进行编译


ProcessHandler
在UWP中不支持。总之,API必须可供平台使用。

我认为这是不可能的。这里还有一个链接指向一个类似的问题,该问题的答案是UWP在沙盒环境中运行,无法访问
getprocesss()
是的,它在UWP中不可用,但在.net standard 2.0中可用,我可以在UWP应用程序中使用.net标准库.net framework中的绝大多数功能在平板电脑程序中不可用,即使它们出现在框架中,它们运行的“沙箱”环境几乎压倒了所有功能。改用普通的程序。这很有趣。我自己也很好奇。。。我相信这个想法是它可以编译到任何环境,但是你会认为如果你使用“标准”并且它是通用的,那么它会在编译过程中对你大喊大叫。这是以前创建可移植类库的方法。向PCL项目中添加的目标越多,编译的代码就越少。这也没有让任何人高兴。
public class MyClass
{
    static void Main()
    {
#if NET40
        Console.WriteLine("Target framework: .NET Framework 4.0");
#elif NET45  
        Console.WriteLine("Target framework: .NET Framework 4.5");
#else
        Console.WriteLine("Target framework: .NET Standard 1.4");
#endif
    }
}