是否可以在从 .net 到 uwp 的可移植库中避免 System.dll 中的此异常?

Is possible to avoid this Exception in System.dll in a Portable library from .net to uwp?

我是 .netcore 的新手,有些东西对我来说是新的。 我有一个具有以下特征的 dll:

**[assembly: Extension]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows=true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyCompany("XXX")]
[assembly: AssemblyProduct("XXX")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Copyright \xxx 2017 XXX")]
[assembly: AssemblyTrademark("")]
[assembly: NeutralResourcesLanguage("en-US")]
[assembly: AssemblyTitle("XXXXXX.Services.XXXX.Desktop")]
[assembly: AssemblyDescription("")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.1", FrameworkDisplayName=".NET Framework 4.6.1")]**

我正在尝试在 .netcore 的可移植库中发布此库的一些功能。

我的可移植库编译完美添加该库。一旦我从 UWP 应用程序执行它,我就会收到一个异常(如下)。 此 dll 对库 System.xml 有一些依赖性,其中出现在下面的异常中的 PublicKeyToken。

无法加载文件或程序集 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxx'。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)"

我是不是做错了什么?有什么办法可以解决这个问题吗?我无权访问主要的 dll 代码。

我的便携class就是这么简单:

using XXXXX.Services.XXXX.Desktop;
namespace RobAPIDesktop
{
    public static class RobAPiPortable
    {
        public static void Initialize()
        {
            try
            {

                DesktopInit.Initialize();

            }
            catch (Exception ex)
            {

            }
        }
    }
}

PCL 已死。您应该使用 .NET Standard 库。

看看这个页面上的矩阵 - https://docs.microsoft.com/en-us/dotnet/standard/net-standard

如果您创建 netstandard 2.0 库,您可以访问更多的 API,但可以使用该库的 UWP 平台的最低版本是 10.0.16299。

您需要找到所需 API 之间的最佳点,select 具有这些 API 的最低网络标准版本,这将使您的库可供更多受众访问。因此,如果 netstandard 1.4 具有您需要的所有 API,那么任何 UWP 项目都可以使用它。