UWP 和 net native 抛出 FileNotFoundException

UWP and net native throws a FileNotFoundException

我正在开发一个在调试模式下完美运行的 UWP,当我在发布模式下编译它时它编译没有错误,但是当我 运行 应用程序时,我有一个使用函数的进程在抛出 System.IO.FileNotFoundException System.Security.Net Standard 2.0 库中。找不到此程序集的元数据。

这是我的rd.xml

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
  <Application>
    <!--
      An Assembly element with Name="*Application*" applies to all assemblies in
      the application package. The asterisks are not wildcards.
    -->
    <Assembly Name="*Application*" Dynamic="Required All" />

    <!-- Add your application specific runtime directives here. -->

    <Assembly Name="System.Runtime" Dynamic="Required All" />
    <Assembly Name="System.Security" Dynamic="Required All" />

    <Type Name="Windows.Foundation.TypedEventHandler{Microsoft.UI.Xaml.Controls.NavigationView,Microsoft.UI.Xaml.Controls.NavigationViewItemInvokedEventArgs}" MarshalObject="Public" />

    <Type Name="Microsoft.UI.Xaml.Controls.NavigationView">
      <Event Name="ItemInvoked" Dynamic="Required"/>
    </Type>

    <Type Name="System.Configuration.AppSettingsSection" Serialize="Required Public" />
  </Application>
</Directives>

而抛出错误的行就是这一行。

            Assembly System_Security_Assembly = Assembly.Load("System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");

尽管这个工作正常。

Assembly cripXmlAssembly = Assembly.Load("System.Security.Cryptography.Xml");

我读过有关向 RD.xml 文件添加指令的信息,但我认为这适用于 UWP,在这种情况下,异常是由 Net Standard dll 抛出的。有人可以解释一下吗?

这是一个复制品。

enter link description here

通过讨论,我们发现 CoreRT 不支持程序集的动态加载(这是使用 .NET 原生工具链在 Release 中编译应用程序时使用的运行时):

我们知道,在发布模式下构建时,.NET 本机用于 UWP 应用程序。

从这个document:

.NET Native uses CoreRT in conjunction with the UTC compiler to provide native compilation for UWP apps​.

从这个 thread :

Unsupported features: Dynamic loading (e.g. Assembly.LoadFile), dynamic code generation (e.g. System.Reflection.Emit), Windows-specific interop (e.g. COM, WinRT)​

Here 还提到目前这在 CoreRT 中是不可能的。

事实上,唯一可以 "loaded" 的程序集是那些静态链接到 运行 本机进程的程序集。