首页 > 解决方案 > 无法加载文件或程序集“System.Private.CoreLib...”

问题描述

我有一个针对 .net 标准 1.4 的 Xamarin.Forms 应用程序。在具有最低版本 14393(和目标 16299)的 UWP 应用程序上,我从 Microsoft Store 获得以下异常(尽管在我的计算机上它甚至从appxbundle文件运行良好):

注意要点:

  1. 错误发生Xamarin.Forms.Forms.Init(e);OnLaunched.
  2. 错误本身是Could not load file or assembly 'System.Private.CoreLib...'.

System.IO.FileNotFoundException:无法加载文件或程序集“System.Private.CoreLib,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。文件名:System.ModuleHandle.ResolveType(RuntimeModule 模块,Int32 typeToken,IntPtr* typeInstArgs,Int32 typeInstCount,IntPtr* methodInstArgs,Int32 methodInstCount , ObjectHandleOnStack 类型) 在 System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule 模块, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) 在 System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments,

任何想法这可能意味着什么,以及如何解决它?

标签: c#xamarinuwp.net-standarddesktop-bridge

解决方案


鉴于您的包同时具有 UWP 和桌面组件,您将需要使用 VS 打包项目来创建 .appxupload 文件以进行商店提交。

有关更多信息/示例,请查看此处:

https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-1/

https://blogs.windows.com/buildingapps/2017/12/04/extend-desktop-application-windows-10-features-using-new-visual-studio-application-packaging-project/(见例子#3)

应用商店不再接受包含未使用正确打包项目创建的混合 UWP 和桌面 .NET 二进制文件的包。这是为了确保 UWP 二进制文件在云中获得正确的 .NET 本机编译(这不适用于桌面 .NET 二进制文件)。在您的情况下,发生的事情是商店中跳过了 .NET 本机编译,导致包无效,因为声明的依赖项与包的内容不匹配。我们应该在这里改进我​​们的错误检测,以便我们在提交时通知您您的包不好,需要更多的工作。

如果你的 Win32 EXE 不是在 VS 中构建的,而你只是想在你的 UWP 项目中包含二进制文件,你仍然应该使用 Packaging 项目。确保将 Win32 EXE 放入包的子文件夹中。有关此类项目结构,请参见下面的屏幕截图。

在此处输入图像描述


推荐阅读