2015-08-20 134 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配置文件导致问题。