Xamarin UWP项目不会从Nuget

时间:2018-01-11 15:53:21

标签: xamarin.forms nuget-package xamarin.uwp

我有一个案例,当我在我的xamarin表单项目上安装任何nuget包时,只有UWP项目没有正确安装。它仅安装主程序包,但未安装依赖项。这似乎不适用于Android和IOS项目,只有UWP。你可以在下面看到。我已安装此软件包并具有依赖项

enter image description here

但是当我检查列表中的一个依赖项时,它会显示未安装。

enter image description here

但输出窗口表明它已安装并写入project.lock.json文件,它就在那里我可以找到它。

enter image description here

但我正在使用project.json文件,如下所示。

enter image description here

当我检查project.json文件时,它只引用了主程序包,即Microsoft.NETCore.UniversalWindowsPlatform。没有依赖的参考。

所以我的问题是; project.json和project.lock.json有什么区别?我需要他们两个吗?这个项目是2年前使用Vs2015创建并始终升级。如果我使用Vs2017 15.5.3版本创建一个新项目,我在UWP项目下看不到这些文件? 这里有什么问题?有人可以解决这个问题吗?

编辑: 根据下面的答案,我应该假设安装了主程序包时安装了依赖项,但是例如,我安装了这个Akavache nuget,如下所示

enter image description here

它弹出它将安装像akavache.core这样的依赖项,但是一个安装在nuget-solution上完成,我看到下面的屏幕。如何确保已安装?

另一件事是我在我的uwp项目附近看到了csproj扩展。我不确定这是否与将表单Project.json文件更改为csproj作为nuget导入位置有关。

enter image description here

1 个答案:

答案 0 :(得分:2)

  

project.json和project.lock.json有什么区别?我需要他们两个吗?这个项目是2年前使用Vs2015创建并始终升级。如果我使用Vs2017 15.5.3版本创建一个新项目,我在UWP项目下看不到这些文件?

根据project.json reference文档,project.json文件维护项目中使用的包列表,称为包引用格式。它取代了packages.config,但是又通过使用NuGet 4.0 +的PackageReference 被取代

在使用project.json的项目中恢复NuGet包的过程中生成project.lock.json文件。

  

但是当我检查列表中的一个依赖项时,它会显示未安装。

实际上,Microsoft.NETCore.UniversalWindowsPlatform版本6.0.6包含.NET native compilers。您无需单独安装Microsoft.Net.Native.Compiler

最新的Microsoft.Net.Native.Compiler仅适用于Windows 10 Fall Creators Update (10.0;build 16299)。如果已单独安装,则需要将目标最小版本修改为16299。

<强>更新

  

它弹出它将安装像akavache.core这样的依赖项,但是一个安装在nuget-solution上完成,我看到下面的屏幕。如何确保已安装?

Microsoft.Net.Native.Compiler将不会显示在项目References文件夹中,它将是使用包管理器工具进行管理。

enter image description here

您可以在以下文件夹中找到project.assets.json。它记录了你安装的nuget包。

Path: C:\Users\xxxx\source\repos\GetPlainTextTest\GetPlainTextTest\obj\project.assets.json