我想在Windows 10通用Windows平台应用程序和Windows Phone 8.1应用程序之间共享我的M2MQTT代码。也许是未来的WPF应用程序。
我试图使用NuGet将M2MQTT包含在便携式类库(PCL)中。我以最低要求为目标,以满足两种项目类型。我收到以下错误。是否可以在可由UWP和WP8.1项目共享的可移植类库中引用m2mqtt?
Attempting to gather dependencies information for package 'M2Mqtt.4.2.0.1' with respect to project 'Pcl45', targeting '.NETPortable,Version=v4.6,Profile=Profile32'
Attempting to resolve dependencies for package 'M2Mqtt.4.2.0.1' with DependencyBehavior 'Lowest'
Resolving actions to install package 'M2Mqtt.4.2.0.1'
Resolved actions to install package 'M2Mqtt.4.2.0.1'
Install failed. Rolling back...
Package 'M2Mqtt 4.2.0.1' does not exist in project 'Pcl45'
Could not install package 'M2Mqtt 4.2.0.1'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.6,Profile=Profile32', 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.
其他信息9/24/2015
我克隆了M2MQTT GitHub repository并注意到Windows 8.1和Windows Phone 8.1有一个.pcl。我没有在.pcl中看到对UWP的支持。
我想我有答案。没有M2MQTT在UWP项目中不支持.pcl。
想知道将来是否有计划添加.pcl支持?
此外,如果我可以在Xamarin Android或Ios项目中使用M2MQTT吗?
其他信息9/28/2015 根据@Anders Gustafsson的建议,我成功创建了一个.pcl,我可以在我的UWP应用程序和Windows Phone 8.1应用程序中使用.pcl。不再重复代码。尼斯。希望这将适用于xamarin android和ios。
有这个警告。
Severity Code Description Project File Line Source Warning
Some NuGet packages were installed using a target framework different from
the current target framework and may need to be reinstalled. Visit
http://docs.nuget.org/docs/workflows/reinstalling-packages for more
information. Packages affected: M2Mqtt Pcl45 0 Build
答案 0 :(得分:1)
M2MQTT 可用作PCL配置文件32程序集,该程序集能够针对Windows 8.1,Windows Phone 8.1和Windows 10 / UWP项目。 M2Mqtt.WinRT 程序集实际上是PCL Profile 32程序集。
您遇到的问题是这个事实没有反映在 NuGet 包中。在 NuGet 包中, win81 和 wpa81 分别有 lib 文件夹, M2Mqtt.WinRT < / em>两者组装。理想的情况是应该有一个包含 M2Mqtt.WinRT 的单个子文件夹 portable-win81 + wpa81 ,然后一切都会(可能)完美无缺地工作对你而言。
似乎有一种解决方法,但我不能保证它完全可靠。
现在,您应该能够从PCL使用 M2Mqtt.WinRT 程序集,并且您还应该能够在UWP应用程序中引用您的PCL。
为了在您从NuGet下载 M2MQTT 软件包后添加更多可靠性,您可以手动删除然后重新添加对 M2Mqtt.WinRT 程序集的引用在你的PCL项目中。这样你就会使NuGet短路,阻止NuGet意外地尝试从不存在的( portable-win81 + wpa81 )目录中恢复你的 M2Mqtt.WinRT 引用。 / p>
答案 1 :(得分:0)
我克隆了M2MQTT GitHub存储库,注意到Windows 8.1和Windows Phone 8.1有一个.pcl。我没有在.pcl中看到对UWP的支持。
我想我有答案。 M2MQTT目前在UWP项目中不支持.pcl。