1

我正在尝试将 lightinject 用于 xamarin 应用程序。公共代码位于单独的可移植类库中。此项目配置为 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.

我发现了这个问题,所以我尝试切换到 Profile111,但即使使用此配置文件,也无法将这个库添加到 PCL。

也许我错过了其他东西?

4

2 回答 2

0

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

LightInject 4.0.7 刚刚发布到官方 NuGet 源。

于 2016-02-07T11:41:20.923 回答
0

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

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

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

net45+win81+wpa81

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

net45+win+wpa81

win这里的意思是win8(Windows 8)。

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

似乎没有与 LightInject 目标相匹配的确切 PCL 配置文件。最接近的是 Profile 151:

net451+win81+wpa81

更改可移植类库以使其针对 Profile 151 允许安装 LightInject。这似乎是我能看到的唯一兼容的配置文件。

于 2016-02-06T13:34:58.890 回答