MvvMCross 3.0.6 Nuget包安装问题

9

我正在尝试使用NuGet 2.5版本安装MVVMCross NuGet包。我已将mono android和touch文件添加到Profile104文件夹中。但仍然出现以下异常:

Attempting to resolve dependency 'MvvmCross.HotTuna.StarterPack (≥ 3.0.6)'.
Attempting to resolve dependency 'MvvmCross.HotTuna.CrossCore (≥ 3.0.6)'.
Attempting to resolve dependency 'MvvmCross.PortableSupport (≥ 3.0.6)'.
Installing 'MvvmCross.PortableSupport 3.0.6'.
Successfully installed 'MvvmCross.PortableSupport 3.0.6'.
Installing 'MvvmCross.HotTuna.CrossCore 3.0.6'.
Successfully installed 'MvvmCross.HotTuna.CrossCore 3.0.6'.
Installing 'MvvmCross.HotTuna.StarterPack 3.0.6'.
Successfully installed 'MvvmCross.HotTuna.StarterPack 3.0.6'.
Installing 'MvvmCross 3.0.6'.
Successfully installed 'MvvmCross 3.0.6'.
Adding 'MvvmCross.PortableSupport 3.0.6' to PortableClassLibrary1.
Uninstalling 'MvvmCross.PortableSupport 3.0.6'.
Successfully uninstalled 'MvvmCross.PortableSupport 3.0.6'.
Install failed. Rolling back...
Could not install package 'MvvmCross.PortableSupport 3.0.6'. 

您正在尝试将此包安装到一个目标为'portable-win+net45+MonoAndroid16+MonoTouch40+sl40+wp'的项目中,但是该包不包含任何与该框架兼容的程序集引用或内容文件。如果需要更多信息,请联系包的作者。
我在创建新的PCL库项目时选择了以下选项:
以下是从C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile104\SupportedFrameworks 文件夹中的XML文件的内容:
.NET for Windows Store apps.xml
<?xml version="1.0" encoding="utf-8"?>
<Framework
    Identifier=".NETCore"
    Profile="*"
    MinimumVersion="4.5"
    DisplayName=".NET for Windows Store apps"
    MinimumVersionDisplayName="" />

.NET Framework 4.5

<?xml version="1.0" encoding="utf-8"?>
<Framework
    Identifier=".NETFramework"
    Profile="*"
    MinimumVersion="4.5"
    DisplayName=".NET Framework"
    MinimumVersionDisplayName="4.5" />

MonoAndroid.xml

<?xml version="1.0" encoding="utf-8"?>
<Framework DisplayName="Mono for Android"
  Identifier="MonoAndroid"
  Profile="*"
  MinimumVersion="1.6"
  MaximumVersion="*" />

MonoTouch.xml

<?xml version="1.0" encoding="utf-8"?>
<Framework
    DisplayName="MonoTouch"
    Identifier="MonoTouch"
    Profile="*"
    MaximumVersion="*" 
    MinimumVersion="4.0" />

Silverlight 4.xml

<?xml version="1.0" encoding="utf-8"?>
<Framework
    Identifier="Silverlight"
    Profile=""
    MinimumVersion="4.0"
    DisplayName="Silverlight"
    MinimumVersionDisplayName="4" />

VSMonoTouch.xml

<?xml version="1.0" encoding="utf-8"?>
<Framework DisplayName="VS MonoTouch"
  Identifier=".NETFramework"
  Profile="*"
  MinimumVersion="1.0"
  MaximumVersion="1.0" />

Windows Phone 7.5.xml

<?xml version="1.0" encoding="utf-8"?>
<Framework
    Identifier="Silverlight"
    Profile="WindowsPhone7*"
    MinimumVersion="4.0"
    DisplayName="Windows Phone"
    MinimumVersionDisplayName="7.5" />

我正在使用Windows Server 2012 64位版上的Visual Studio 2012 Ultimate Update 2。请问有人能指点我正确的方向吗?

1
我的猜测是问题出在“win”或“wp”上,但我不确定...已将pcl添加为标签并联系了pcl专家 :) - Stuart
@Stuart:感谢您添加了PCL标签。顺便说一下,我是移动开发的新手,在今天的MvvM C#活动中学到了很多东西,非常有收获。再次感谢 :) - Amit Rai Sharma
我知道你提到了你正在使用NuGet 2.5。但是请确保再次使用最新版本(与http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c进行比较)。我曾经遇到过类似的问题,解决方法就是更新NuGet。 - Shady M. Najib
我遇到了同样的问题。我使用的是VS 2010,所以我首先安装了PCL支持插件。然后我按照这里建议的添加了monoandroid和monovstouch的文件,但目前还没有成功。 - Matt Burland
1
实际上,按照这个链接(http://slodge.blogspot.co.uk/2013/04/my-current-pcl-setup-in-visual-studio.html)的步骤,将vsmonotouch替换为monotouch,重新启动,选择monotouch、Android和Windows Phone 7.5,就可以正常工作了! - Matt Burland
6个回答

5

看起来你的可移植类库的目标是Windows Phone 7.0。尝试切换到Windows Phone 7.5并查看是否有帮助。如果没有,请尝试发布PCL“选择目标”屏幕的截图,以及添加到“SupportedFrameworks”文件夹中的所有XML文件的内容。


编辑:尝试删除VSMonoTouch.xml(然后重新启动Visual Studio)。


2
@ARS 请尝试删除VSMonoTouch.xml文件(然后重新启动Visual Studio)。 - Daniel Plaisted
1
@ARS VSMonoTouch非常出色 - 在过去的15个月中为我节省了大量时间 - 但它确实存在一个问题,即将mt的.net框架版本列为1.0 - 所以这可能是问题所在。 - Stuart
1
如果一切都失败了,您可以使用预构建的二进制文件和步骤,就像http://www.codeproject.com/Articles/566270/MvvmCross-TipCalc-Step-1-Creati中所述-但希望有人知道这个pcl或nuget配置问题是什么... - Stuart
@Stuart,肯定是NuGet包或PCL出了问题。我可以编译并成功运行TipCal示例,没有任何问题。 - Amit Rai Sharma
@Stuart 我可能过于草率地得出结论了...这可能是设置或其他原因。然而,事实是存在一个问题,几乎浪费了我几个小时的时间。感谢您宝贵的建议,帮助我进一步进行 :) - Amit Rai Sharma
显示剩余6条评论

2

2
我刚刚接收到了NuGet的更新,看起来现在它正在工作。以下是在新项目上使用MVVM Cross的步骤:
1.创建一个新的Xamarin Android项目。
2.创建一个新的PCL库(选择Mono Android、MonoTouch和Windows Phone 7.5及更高版本)。
3.在应用程序和PCL上都添加MVVMCross NuGet。
4.将该库作为应用程序的引用添加。
如果不将MVVMCross添加到应用程序中,则在编译时会出现错误。请注意保留HTML标记。

1

我遇到了同样的问题。

无法安装包 'MvvmCross.PortableSupport 3.0.6'。您正在尝试将此包安装到一个针对“portable-win+net45+MonoAndroid16+MonoTouch40+sl40+wp71”的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请联系包作者。

根据http://slodge.blogspot.co.uk/2013/04/my-current-pcl-setup-in-visual-studio.html,我没有VSMonoTouch,只有两个文件(MonoAndroid,Version=v1.6+.xml和MonoTouch,Version=v1.0+.xml)。

我还尝试过

"从核心项目属性的目标框架中删除Mono for Android、MonoTouch、VS MonoTouch和Windows Phone。安装MvvmCross NuGet包。重新添加目标框架。"

但是当我尝试编译时,出现以下错误:

错误1 加载程序集时出现异常: System.IO.FileNotFoundException: 无法加载程序集 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'。也许在Mono for Android配置文件中不存在?文件名:'System.Windows.dll' at Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List1 assemblies, AssemblyDefinition assembly) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List1 assemblies, AssemblyDefinition assembly) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) at Xamarin.Android.Tasks.ResolveAssemblies.Execute() MyProject


1
我也遇到了这个问题。在搜索解决方案后,我发现我使用的是 Nuget 版本 2.4。 我将我的 Nuget 升级到了 2.6,然后它就顺利运行了。 你可以在这里下载 Nuget 2.6:Nuget 2.6

在创建支持的框架文件夹后,我仍然遇到了问题。实际上,我不得不卸载并重新安装Nuget才能使其正常工作。感谢您的提示。 - Clint Good

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接