Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 从Xamarin表单PCL中删除ios、windows8和wp8-nuget 3.0选择出错?_Visual Studio 2015_Nuget_Xamarin.forms_Windows 10 Universal - Fatal编程技术网

Visual studio 2015 从Xamarin表单PCL中删除ios、windows8和wp8-nuget 3.0选择出错?

Visual studio 2015 从Xamarin表单PCL中删除ios、windows8和wp8-nuget 3.0选择出错?,visual-studio-2015,nuget,xamarin.forms,windows-10-universal,Visual Studio 2015,Nuget,Xamarin.forms,Windows 10 Universal,我在做一个Xamarin表单项目。我想针对Android和Windows10UWP 当我试图通过从PCL目标中删除“Windows 8”、“Windows Phone Silverlight 8”、“Windows Phone 8.1”、“Xamarin.ios”和“Xamarin.ios(classic)”来清理PCL时,我得到了以下令人讨厌的结果 我真的只是想删除WP8,因为我不关心它的目标 项目的目标无法更改。选定的目标需要 然而,选择NuGet 3.0支持的项目是Visual Studi

我在做一个Xamarin表单项目。我想针对Android和Windows10UWP

当我试图通过从PCL目标中删除“Windows 8”、“Windows Phone Silverlight 8”、“Windows Phone 8.1”、“Xamarin.ios”和“Xamarin.ios(classic)”来清理PCL时,我得到了以下令人讨厌的结果

我真的只是想删除WP8,因为我不关心它的目标

项目的目标无法更改。选定的目标需要 然而,选择NuGet 3.0支持的项目是Visual Studio 无法自动为您执行此操作。请卸载所有NuGet 请打包并重试

如何让项目选择NuGet 3.0? 还有什么我应该试试的吗

环境:Xamarin表格,VS2015


谢谢……

根据对原始问题的评论,有两条潜在路线;一种方法是尝试从项目中删除所有包,并在重新添加它们之前进行必要的更改。

如果您的问题是解决方案中到处显示的选项,您可以在解决方案资源管理器中简单地选择不想显示的包,然后右键单击并单击“卸载项目”。他们将留在那里增加项目规模,但他们将离开部署列表和其他地方。

对我有效的解决方案:

卸载Xamarin。表单:

Right Click Solution -> Manage NuGet Packages -> Uninstall Xamarin.Forms -> Restart VS
Manage NuGet packages -> Search for Xamarin.Forms -> Install -> Restart VS
然后删除构建平台:

Right Click Solution -> Properties -> Build -> under Targeting select Change -> Remove platform(s) -> Restart VS
重新安装Xamarin。表单:

Right Click Solution -> Manage NuGet Packages -> Uninstall Xamarin.Forms -> Restart VS
Manage NuGet packages -> Search for Xamarin.Forms -> Install -> Restart VS

对于我最初的原型,我不想在其他平台上浪费时间;因此:

  • 我启动了一个新的解决方案——“空白应用程序(Xamarin Forms Portable)”
  • 我使用PackageManager从所有项目中删除所有包
  • 我更改了项目目标以排除任何Windows Mobile应用程序(它希望保留Windows 8.1;我认为这是我想要的.NET包含)
  • 我删除了3个Windows项目
  • 我使用PackageManager将“Xamarin.Forms”读取到所有剩余的项目中,它会自动添加启动时存在的所有其他包

  • 现在我的解决方案(实际上)只针对Android和iOS….

    对我来说,这就是解决方案:
    查看目标项目中的packages.config文件,卸载所有已安装的软件包。然后你就可以改变目标了。然后重新安装软件包。

    禁用其中一个版本的最佳方法是在解决方案资源管理器中,右键单击不希望包含的版本(如Windows或WinPhone),然后单击卸载项目。然后,该构建将更改为(不可用)

    另一种可能的解决方案是临时重命名packages.config,将PCL设置更改为新的目标平台,然后再次更改packages.config的名称。这对我使用VS 2015的项目很有用。不能因为这个解决方案而获得荣誉,请在以前的某个博客上阅读它,并将其发布在这里,以防它对某人有所帮助。如果我再次看到这篇博客文章,我会在这里发布链接。

    以上所有方法都不能解决我的问题,卸载nuget软件包或编辑项目文件不是一个解决方案(至少对我来说-谈论参考地狱),但此方法确实有效:

    首先,如果不取消选中.net Framework,则无法删除单个目标平台,如win8、silverlight或asp.net core

    当您取消选中Windows 8和ASP.NET内核时,也取消选中.NET Framework。不要担心,它不会显示上述错误消息,但VS将自动重新检查.NET Framework(通常是较低版本),然后在完成后,在删除其他版本后重新添加Window 8.1


    一旦发生这种情况,您可以随后删除其他。我花了一段时间才弄明白这一点,因为这一点在其他地方既不明显,也没有得到解释。您不需要卸载Xamarin.Forms。

    请原谅这个听起来很愚蠢的问题,但是在更改设置之前,您是否尝试过按照建议删除项目中的所有包?dadgum,效果很好。使用“manage nuget”包从PCL中删除xamarin表单。使用“manage nuget”包将xamarin表单重新添加到PCL。重建。进入目标,再见WP8。作为“答案”发布,我会为你们标记。我发现我实际上更喜欢的路线。。。我们来看看它能不能撑得住。创建新的Xamarin表单应用程序。删除ios和WP8项目。将新的C#PCL添加到项目-选择目标平台,适用于我win10+android。将nuget Xamarin.Forms引用添加到PCL,将app.cs从旧PCL拖动到新PCL。删除旧的PCL。重建。注意packages.config现在也显示了win10 target:Doc,这意味着我很高兴您找到了解决方案。我为后代补充了一个答案;如果愿意,请随时提出编辑请求。若要更改PCL项目的目标,您只需在此项目上执行此操作(删除所有包),而不是在解决方案的每个项目上。您好,如何卸载Xamarin.Forms:,请详细说明步骤。我找不到此选项。我已经更新了答案,包括有关卸载Xamarin.Forms的进一步说明。您需要右键单击解决方案以查找Manage NuGet软件包。您可以从此处卸载。我应该从PCL库还是从windows8.1库中删除所有NuGet软件包?解决方案属性下没有“生成”。我想你的意思可能是“项目属性-->构建”,但这里也没有“目标”。您可能还表示“项目属性-->库-->目标”,但这仍然不起作用。卸载Xamarin表单后,我仍然会遇到同样的错误。我也面临同样的问题。我不知道怎么做第二步。没有意义。还要删除该项目中对其他内容的所有引用。请确保使用以下命令还原NuGet软件包:“更新软件包-重新安装”,而不是Visual Studio中的“还原软件包”按钮。这是因为Visual Studio中的NuGet Restore按钮仅还原packages目录(\packages folde)中的文件