Nuget 无法将 lightinject 4.0.6 添加到可移植 class 库

Nuget fails to add lightinject 4.0.6 to portable class library

我正在尝试将 lightinject 用于 xamarin 应用程序。通用代码位于单独的可移植 class 库中。此项目针对 TargetFrameWorkProfile Profile78 配置。当我添加 lightinject 4.0.6 时出现以下错误:

Attempting to gather dependencies information for package 'LightInject.4.0.6' with respect to project 'ProjectName', targeting '.NETPortable,Version=v4.5,Profile=Profile78'
Attempting to resolve dependencies for package 'LightInject.4.0.6' with DependencyBehavior 'Lowest'
Resolving actions to install package 'LightInject.4.0.6'
Resolved actions to install package 'LightInject.4.0.6'
Install failed. Rolling back...
Package 'LightInject.4.0.6 : ' does not exist in project 'ProjectName'
Package 'LightInject.4.0.6 : ' does not exist in folder '<path_to_packages_folder>'
Could not install package 'LightInject 4.0.6'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile78', 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.

我找到了 this issue,所以我尝试切换到 Profile111,但即使有了这个配置文件,这个库也无法添加到 PCL。

也许我还漏掉了什么?

查看 LightInject 4.0.6 NuGet 包,它有一个可移植的 class 库文件夹:

net45+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10

Mono 和 Xamarin 部分是可选的,所以如果我们忽略它们,我们有:

net45+win81+wpa81

PCL 配置文件 111 如下,忽略任何 Mono 和 Xamarin 框架:

net45+win+wpa81

这里的win是指win8 (Windows 8).

查看配置文件 111 和 LightInject NuGet 包,它们不兼容。 LightInject 支持 win81 (Windows 8.1) 作为其配置文件的一部分,而 PCL 配置文件 111 支持 win8。为了使 LigthInject 兼容,它必须针对 win8 而不是 win81。

似乎没有与 LightInject 似乎瞄准的目标完全匹配的 PCL 配置文件。最近的是配置文件 151:

net451+win81+wpa81

更改便携式 Class 库使其以配置文件 151 为目标允许安装 LightInject。这似乎是我能看到的唯一兼容的配置文件。

更改了配置文件 111 的 TFM。 https://github.com/seesharper/LightInject/commit/8ddb35723d460c0007ac63d7fe249874fbccb960

LightInject 4.0.7 刚刚发布到官方 NuGet 提要。