Jam*_* Ko 4 .net c# asp.net nuget asp.net-core
我有一个针对以下平台的PCL:
我还有另一个基于.NET Core的软件包(称为Enu),project.json我想在这个PCL中使用它.我的问题是,当我尝试将.NET Core软件包安装到我的PCL中时,收到一条错误消息,指出PCL与软件包不兼容.
PM> Install-Package Enu
# lots of output...
Install failed. Rolling back...
Package 'Enu 4.4.0' does not exist in project 'PclDummy'
Package 'Enu 4.4.0' does not exist in folder 'C:\Users\James\Documents\Visual Studio 2015\Projects\PclDummy\packages'
Install-Package : Could not install package 'Enu 4.4.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain
any assembly references or content files that are compatible with that framework. For more information, contact the package author.
Run Code Online (Sandbox Code Playgroud)
在深入研究这个问题后,我发现Enu依赖的软件包,特别System.Runtime (v4.0.0)是在我的PCL上安装问题(相关帖子).奇怪的是,虽然它声称与我的库不兼容,但它支持我所做的所有目标平台,所以我不明白为什么会这样.
TL; DR: NuGet不允许在PCL上安装.NET Core包,因为它认为它们不兼容.在调查之后,我发现问题的根源是包的依赖性与PCL不兼容,即使它支持我的PCL所做的所有平台.为什么会这样?
这是.NET Core包的project.json文件,我做错了什么?
您正在尝试的不受支持,因为您正在创建一个仅允许.NET 4.5,Windows 8和Windows Phone 8.1的公共子集的PCL,并且您正在尝试添加对此PCL的引用,这是PCL的超集.您允许的API.这会产生冲突,因为Enu包可能使用.NET 4.5,Windows 8和/或Windows Phone 8.1上不可用的API.
要使用.NET Core库,您必须创建一个.NET 4.5库或使用Enu库的替代品,该库本身就是使用相同的PCL(.NET 4.5,Windows 8,Windows Phone 8.1)或更小的子集. .NET API(.NET 4.5,Windows 8,Windows Phone 8.1和Windows Phone 8 Silverlight).
编辑:看看您的NuGet包显示,您有一个面向.NET 4.5,Windows 8和Windows Phone 8.1的库,但是您有适用于所有平台的不同程序集,但您需要在PCL中使用它是一个可以在所有平台上使用的单个程序集.NuGet平台标识符将是"portable-net45 + win + wpa81".
| 归档时间: |
|
| 查看次数: |
1803 次 |
| 最近记录: |