我有一个案例,当我在我的xamarin表单项目上安装任何nuget包时,只有UWP项目没有正确安装。它仅安装主程序包,但未安装依赖项。这似乎不适用于Android和IOS项目,只有UWP。你可以在下面看到。我已安装此软件包并具有依赖项
但是当我检查列表中的一个依赖项时,它会显示未安装。
但输出窗口表明它已安装并写入project.lock.json文件,它就在那里我可以找到它。
但我正在使用project.json文件,如下所示。
当我检查project.json文件时,它只引用了主程序包,即Microsoft.NETCore.UniversalWindowsPlatform。没有依赖的参考。
所以我的问题是; project.json和project.lock.json有什么区别?我需要他们两个吗?这个项目是2年前使用Vs2015创建并始终升级。如果我使用Vs2017 15.5.3版本创建一个新项目,我在UWP项目下看不到这些文件? 这里有什么问题?有人可以解决这个问题吗?
编辑: 根据下面的答案,我应该假设安装了主程序包时安装了依赖项,但是例如,我安装了这个Akavache nuget,如下所示
它弹出它将安装像akavache.core这样的依赖项,但是一个安装在nuget-solution上完成,我看到下面的屏幕。如何确保已安装?
另一件事是我在我的uwp项目附近看到了csproj扩展。我不确定这是否与将表单Project.json文件更改为csproj作为nuget导入位置有关。
答案 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文件夹中,它将是使用包管理器工具进行管理。
您可以在以下文件夹中找到project.assets.json
。它记录了你安装的nuget包。
Path: C:\Users\xxxx\source\repos\GetPlainTextTest\GetPlainTextTest\obj\project.assets.json