2013-03-24 116 views
2

因此,我一直在研究一款遊戲,而且大量的項目已經變得難以管理。輸入NuGet。將PCL NuGet軟件包添加到PCL項目時遇到問題

我想確保我的代碼可以在不同的設備上工作,所以我一直在使這些項目成爲可移植類庫。我需要在XBox,Windows,iOS,Android和Silverlight上使用這些。我在C語言創建的一些自定義定製SupportedFrameworks:\程序文件(x86)\參考大會\微軟\ Framework.NETPortable \ V4.0 \資料\ Profile1的\ SupportedFrameworks 具體MonoAndroid和VSMonoTouch

我成功地把這些PCLS之一到一個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上更好。我已更新,但無濟於事。

有沒有人見過這個之前,或者我錯過了明顯的東西?任何幫助將大大appriated =)

感謝, 約書亞

+0

monoandroid在即將發佈的2.5版本中與http://nuget.codeplex.com/workitem/2847一起添加。如果你想嘗試一個夜間預發佈的修補程序,可以從http://build.nuget.org/NuGet.Tools.vsix下載 – Deepak 2013-03-24 07:12:02

+0

我面臨同樣的問題。簽入目標版本明確解決了它。 – 2015-02-26 08:32:52

回答

0

它看起來像您正在使用「.NETFramework」爲你把Profile1的SupportedFrameworks文件夾中的XML文件中的標識符。這基本上是在Windows上構建iOS項目的一個竅門,但對於該場景的實際支持,您應該將該標識符更改爲MonoTouch。然後,當您創建包時,它應該使用monotouch代替lib/portable-x + y + z文件夾的net10。

然後,如@Deepak所示,安裝nightly build of NuGet。那麼你應該應該能夠將NuGet包安裝到你的PCL項目中。如果你確實嘗試過,請告訴我它是否有效。 :)

+0

我替換了xml以讀取MonoTouch,並重新安裝了NuGet,每晚構建。我現在得到這個錯誤消息,而不是:「你正試圖安裝這個包到一個項目,目標'便攜式贏+網絡40 + MonoAndroid16 + SL40 + MonoTouch10 + WP + Xbox40'」 我試過這與MonoTouch和VSMonoTouch標識符。 – Joshua 2013-03-30 04:48:59

+0

好的,所以我已經調整了刪除配置文件,並發現Xbox配置文件造成的問題。如果我刪除那一個,一切都解決了。 Xbox 360.xml中的文本是「<?xml version =」1.0「encoding =」UTF-8「?> 」 – Joshua 2013-03-30 05:22:06

+0

第三次更新是魅力。顯然,Xbox PCL目前不受NuGet支持。我想我現在要去掉xbox配置文件,並且希望NuGet能夠繼續支持xbox。除非別人有更好的主意? 感謝您的幫助! – Joshua 2013-03-30 05:25:07

相關問題