2

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

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

我成功地将其中一个 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 中的一个错误。我在网上对此进行了调查,发现主要修复方法是更新 NuGet,因为最新版本与 PCL 配合得更好。我已经更新了,但是没有用。

有没有人见过这个,或者我错过了一些明显的东西?任何帮助都会得到很大的帮助=)

谢谢,约书亚

4

1 回答 1

0

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

然后,正如@Deepak 建议的那样,安装NuGet 的夜间版本。然后您应该能够将 NuGet 包安装到您的 PCL 项目中。如果你尝试这个,请让我知道它是否有效。:)

于 2013-03-26T01:56:14.217 回答