2015-08-20 133 views
1

我試圖從GitHub編譯Caliburn.Micro項目,所以我可以生成DLL在我自己的項目中使用 - 一個Caliburn.Micro Xamarin Native Android項目。安裝Caliburn.Micro NuGet包總是失敗

我已將Caliburn.Micro.sln(位於src文件夾中)加載到Visual Studio 2012專業版中,並嘗試構建Caliburn.Micro項目。我收到了有關元數據的40個錯誤。例如;

Error 5 Metadata file '_Tests\Caliburn.Micro-xamarin\Caliburn.Micro-xamarin\bin\net45\Debug\Caliburn.Micro.Platform.dll' could not be found _Tests\Caliburn.Micro-xamarin\Caliburn.Micro-xamarin\src\Caliburn.Micro.Tests.NET45\CSC Caliburn.Micro.Tests.NET45 

所以我試圖在這個項目上安裝Caliburn.Micro NuGet包,我得到以下錯誤。我還創建了自己的新解決方案,並嘗試安裝NuGet軟件包併發生相同的錯誤。

任何想法出了什麼問題?

PM> Install-Package Caliburn.Micro 
Attempting to resolve dependency 'Caliburn.Micro.Core (= 2.0.2)'. 
Installing 'Caliburn.Micro.Core 2.0.2'. 
Successfully installed 'Caliburn.Micro.Core 2.0.2'. 
Installing 'Caliburn.Micro 2.0.2'. 
Successfully installed 'Caliburn.Micro 2.0.2'. 
Adding 'Caliburn.Micro.Core 2.0.2' to Caliburn.Micro. 
Uninstalling 'Caliburn.Micro.Core 2.0.2'. 
Successfully uninstalled 'Caliburn.Micro.Core 2.0.2'. 
Install failed. Rolling back... 
Install-Package : Specified argument was out of the range of valid values. 
Parameter name: supportedFrameworks 
At line:1 char:1 
+ Install-Package Caliburn.Micro 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], ArgumentOutOfRangeException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

回答

0

與參數名稱是supportedFrameworks的ArgumentOutOfRangeException通常意味着有什麼不妥的一個或多個便攜式類庫(PCL)型材。

的NuGet着眼於各種PCL目錄中的.xml文件,例如:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\SupportedFrameworks 

如果出於某種原因的NuGet沒有在這些目錄中找到任何非Xamarin輪廓XML文件就會拋出ArgumentOutOfRangeException。 SupportedFrameworks目錄將爲空或可能只包含Xamarin .xml文件,這兩個問題都會導致ArgumentOutOfRangeException。

要查找哪個PCL配置文件缺少.xml文件,您可以查看每個PCL配置文件目錄或調試NuGet。

我通常使用使用的NuGet一個console app但你可以很容易地調試,它傳遞列表命令行參數,這將引發相同的代碼路徑的NuGet版本2.如果你然後把一個斷點上line of code that throws the ArgumentOutOfRangeException你應該能夠看到哪個PCL配置文件導致問題。