仅注意到UWP应用程序不包含它们引用的大多数程序集。相反,它们在安装时需要nuget Manager,并且据我所知,将所需的依赖项直接安装到GAC中。我只是打电话给Install-Package,然后面对安装nuget的提示。
因此在我的应用程序中,我有win32 appservice,它被uwp称为受信任的应用程序。它依赖于Newtonsoft.Json。但是win32应用程序崩溃,并出现无法找到程序集的错误。当然不能找到它,因为它不在应用程序文件夹中。但是它应该如何工作?为什么它不在GAC中?该程序集存在的唯一位置是C:\ Windows \ WinSxS \ msil_hyperv-ux-ui-newtonsoftjson_31bf3856ad364e35_10.0.17134.1_none_2490c36295ddbc03,它是GAC存储。但这仍然没有解决。那么它应该如何工作?
UPD: 这里是重现该问题的示例代码:github.com/GDreyV/uwp-assemblies-test要重现该问题,您需要切换到Release配置,右键单击Uwp项目并选择Store-Create App Packages。软件包准备就绪后,请安装并运行。
答案 0 :(得分:1)
正如Lex Li所指出的那样,UWP使用.NET Native,其中包括提前(AOT)编译过程。这意味着:
.NET运行时上的所有依赖项都已删除,因此您的最终用户将无需脱离他们的安装经验即可获取应用程序引用的特定版本的.NET Framework。实际上,所有.NET依赖项都打包在您的应用程序中,因此应用程序的行为不应仅因为计算机上安装的.NET Framework发生了变化就可以更改。