Xamarin.ios 使用自定义配置文件将PCL NuGet包添加到PCL项目时出现问题

Xamarin.ios 使用自定义配置文件将PCL NuGet包添加到PCL项目时出现问题,xamarin.ios,nuget,portable-class-library,Xamarin.ios,Nuget,Portable Class Library,所以我一直在做一个游戏,数量庞大的项目变得难以管理。输入NuGet 我想确保我的代码可以在不同的设备上工作,所以我一直将这些项目作为可移植类库。我需要在XBox、Windows、iOS、Android和Silverlight上使用这些。我在C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETPortable\v4.0\Profile\Profile1\SupportedFramework中创建了一些自定义的Support

所以我一直在做一个游戏,数量庞大的项目变得难以管理。输入NuGet

我想确保我的代码可以在不同的设备上工作,所以我一直将这些项目作为可移植类库。我需要在XBox、Windows、iOS、Android和Silverlight上使用这些。我在C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETPortable\v4.0\Profile\Profile1\SupportedFramework中创建了一些自定义的SupportedFramework 特别是MonoAndroid和VSMonoTouch

我成功地将其中一个PCL转换为NuGet软件包,但当我尝试将它们添加到同一配置文件的另一个PCL时,出现以下错误: 无法安装程序包“Framework.dll 1.0.0.0”。您正试图将此程序包安装到以“.NETPortable,Version=v4.0,Profile=Profile1”为目标的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请联系软件包作者

软件包文件夹已关闭,其中包含一个名为:portable win+net40+MonoAndroid16+sl40+net10+wp+Xbox40的文件夹,并且确实包含请求的dll。我可以手动将这个dll添加到我的项目中,所以我相信这可能是NuGet中的一个bug。我在网上对此进行了调查,发现主要的修复方法是更新NuGet,因为最新版本的PCLs性能更好。我已经更新了,但是没有用

以前有没有人见过这个,或者我遗漏了什么明显的东西?任何帮助都将不胜感激=)

谢谢,
Joshua

看起来您正在使用“.NETFramework”作为放入Profile1 SupportedFrameworks文件夹的XML文件中的标识符。这基本上是一种在Windows上构建iOS项目的黑客行为,但如果真正支持这种情况,您应该将该标识符更改为MonoTouch。然后,当您创建包时,它应该使用monotouch代替net10来创建lib/portable-x+y+z文件夹


然后,按照@Deepak的建议,安装。然后,您应该能够将NuGet包安装到您的PCL项目中。如果您确实尝试了此方法,请让我知道它是否有效。:)

monoandroid在即将发布的2.5版本中添加了。如果你想尝试每晚的预发布版本和修复,它可以从我面临的同样问题下载。签入目标版本明确地解决了这个问题。我将xml替换为读取MonoTouch,并用夜间构建重新安装NuGet。我现在收到了这个错误消息:“您正试图将此软件包安装到一个目标为‘portable win+net40+MonoAndroid16+sl40+MonoTouch10+wp+Xbox40’的项目中。”我尝试将MonoTouch和VSMonoTouch作为标识符。好的,因此,我在删除配置文件方面做了些手脚,发现问题出在Xbox配置文件上。如果我去掉那个,一切都会解决。Xbox 360.xml中的文本是“第三次更新是魅力”。显然,目前NuGet不支持Xbox PCL。我想我现在要删除xbox的个人资料,希望NuGet能在今后的道路上增加对xbox的支持。除非别人有更好的主意?谢谢你的帮助!