9

我正在尝试使用 NuGet 2.5 版本安装 MVVMCross NuGet 包。我已将单声道 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 框架 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" />

银光 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 电话 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。有人可以指出我正确的方向。

4

6 回答 6

5

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


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

于 2013-05-13T23:10:11.097 回答
2

在 Stuart 的博客( http://slodge.blogspot.co.uk/2013/04/n0-first-mvvmcross-application-n1-days.html )的评论中提到的解决方法对我有用:

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

于 2013-05-21T15:21:26.950 回答
2

我刚刚获得了 NuGet 的更新。看起来它现在正在工作。

以下是在新项目中使用 MVVM Cross 的步骤:

  1. 创建一个新项目 Xamarin Android

  2. 创建一个新的项目 PCL 库(选择 Mono Android、MonoTouch 和 Windows Phone 7.5 及更高版本)。

  3. 在应用程序和 PCL 上添加 MVVMCross NuGet

  4. 添加库作为应用程序的引用

如果不将 MVVMCross 也添加到应用程序中,编译时会出错。

于 2013-05-22T08:05:13.453 回答
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,版本=v1.0+.xml)

我也试过

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

但是当我尝试编译时,我得到了这个错误:

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

于 2013-05-21T20:34:55.200 回答
1

我也面临这个问题。在谷歌搜索找到解决方案后,我发现我使用的是 Nuget 2.4 版,我将我的 nuget 升级到 2.6 并且运行顺利。您可以在此处下载 nuget 2.6:Nuget 2.6

于 2013-07-17T17:51:21.033 回答
0

我写了一篇关于使用 PCL 从头开始​​创建一个简单的 Android 应用程序的分步文章

http://enginecore.blogspot.ro/2013/05/first-app-with-xamarin-android-and.html

于 2013-05-22T09:42:11.700 回答