将.NetStandard库引用到Xamarin.Forms(UWP)中的另一个.NetStandard库

时间:2017-04-14 18:48:25

标签: uwp xamarin.forms .net-standard xamarin.uwp .net-standard-1.4

我有一个.NetStandard 1.4库,它引用了另一个Xamarin.Forms .NetStandard 1.4库。

第一图书馆:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.2",
    "NETStandard.Library": "1.6.1",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.1"
    "AutoMapper": "6.0.2",
    "Microsoft.AspNetCore.DataProtection": "1.1.1",
    "Microsoft.EntityFrameworkCore": "1.1.1",
    "System.Xml.XmlDocument": "4.3.0"
  },
  "frameworks": {
    "netstandard1.4": {}
  }
}

Xamarin.Forms Library:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.2",
    "NETStandard.Library": "1.6.1",
    "Xamarin.Forms": "2.3.4.231",
    "Xamarin.Forms.CarouselView": "2.3.0-pre2"
  },
  "frameworks": {
    "netstandard1.4": {
      "imports": "portable-net461"
    }
  }
}

IOS工作正常。 Android添加一些包后也工作正常。 我的问题是UWP。 它让我疯狂。 这是UWP project.json:

{
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.2",
    "Xamarin.Forms": "2.3.4.231",
    "Xamarin.Forms.CarouselView": "2.3.0-pre2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-x86": {}
  }
} 

我有4个错误:

  

无效的Resx文件。 Stream不是有效的资源   文件。 Eella.Xamarin.Taxi.UWP C:\ Users ..... nuget \ packages \ Microsoft.AspNetCore.DataProtection.Abstractions \ 1.1.1 \ lib \ netstandard1.3 \ Microsoft.AspNetCore.DataProtection.Abstractions.dll

  

无效的Resx文件。 Stream不是有效的资源   文件。 Eella.Xamarin.Taxi.UWP C:\ Users .... nuget \ packages \ Microsoft.AspNetCore.WebUtilities \ 1.1.1 \ lib \ netstandard1.3 \ Microsoft.AspNetCore.WebUtilities.dll

  

一个或多个软件包与UAP不兼容,版本= v10.0   (win10 86)。

  

Microsoft.Win32.Registry 4.3.0提供了编译时引用   UAP上的Microsoft.Win32.Registry程序集,版本= v10.0,但在那里   没有与win10-x86兼容的运行时程序集。

我该怎么办?

更新

降级这两个软件包后,问题解决了,app成功部署了:

“Microsoft.AspNetCore.DataProtection”:1.0.2

“Microsoft.EntityFrameworkCore”:1.0.2

1 个答案:

答案 0 :(得分:1)

这里有两件事可以发生。首先,我会将导入行更改为

"imports": "portable-net45+win8+wpa81"

这使得Profile259兼容。其次,由于win10-x86或其任何变种,我通常无法在我的UWP项目中添加包。

转到UWP项目中的project.json文件并删除所有运行时条目,这样你就可以了。

{
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.2",
    "Xamarin.Forms": "2.3.4.231",
    "Xamarin.Forms.CarouselView": "2.3.0-pre2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
  }
} 

现在添加你的包裹。它应该工作。现在添加回运行时条目,你的项目仍应运行得很好。