Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
C# 磁盘上存储的nuget引用中的库在哪里?_C#_.net_Nuget_Win Universal App_Uwp - Fatal编程技术网

C# 磁盘上存储的nuget引用中的库在哪里?

C# 磁盘上存储的nuget引用中的库在哪里?,c#,.net,nuget,win-universal-app,uwp,C#,.net,Nuget,Win Universal App,Uwp,我正在开发一个通用的windows应用程序。我在参考部分看到了带有蓝色NuGet图标的Microsoft.NETCore.UniversalWindowsPlatform。当我双击它时,对象资源管理器不会像在普通库引用中那样显示 当我阅读文档时,我了解到NuGet确实下载了库的副本,但是我在任何地方都找不到DLL,我查看了所有文件夹 我在哪里可以找到NuGet引用的DLL?这个新实现带来了什么优势?因为我看不到任何好处,尤其是当你离线时,你不能使用对象浏览器窥视 它不是DLL。文档很难获得,而且

我正在开发一个通用的windows应用程序。我在参考部分看到了带有蓝色NuGet图标的Microsoft.NETCore.UniversalWindowsPlatform。当我双击它时,对象资源管理器不会像在普通库引用中那样显示

当我阅读文档时,我了解到NuGet确实下载了库的副本,但是我在任何地方都找不到DLL,我查看了所有文件夹

我在哪里可以找到NuGet引用的DLL?这个新实现带来了什么优势?因为我看不到任何好处,尤其是当你离线时,你不能使用对象浏览器窥视


它不是DLL。文档很难获得,而且很可能会快速更改。但是,您可以通过使用文本编辑器查看C:\Users\yourname\.nuget\packages\Microsoft.NETCore.UniversalWindowsPlatform\5.0.0中的Microsoft.NETCore.UniversalWindowsPlatform.nuspec文件获得提示

您将看到它实际上是一个XML文件,其中包含一个洗衣单:

<dependencies>
  <dependency id="Microsoft.NETCore.Runtime" version="1.0.0" />
  <dependency id="Microsoft.NETCore" version="5.0.0" />
  ... etc
<dependencies>
  <dependency id="System.Collections" version="[4.0.10]" />
  <dependency id="System.Diagnostics.Debug" version="[4.0.10]" />
  ...etc
注意“win7”这个名字,应该有一个故事在那里:)Microsoft.NETCore.Runtime.CoreCLR-x86和Microsoft.NETCore.Windows.ApiSets-x86是更多的nuget软件包。请注意,每个可能的目标都有条目,当您深入到细节时,它不是很“通用”

Microsoft.NETCore.Runtime.CoreCLR-x86.nuspec还包含另一个详细列表:

<dependencies>
  <dependency id="Microsoft.NETCore.Runtime" version="1.0.0" />
  <dependency id="Microsoft.NETCore" version="5.0.0" />
  ... etc
<dependencies>
  <dependency id="System.Collections" version="[4.0.10]" />
  <dependency id="System.Diagnostics.Debug" version="[4.0.10]" />
  ...etc
我们终于找到了真正的DLL。Collections是编译器使用/reference选项实际看到的一个Nuget包。其ref\dotnet子目录具有引用程序集,其lib\netcore50子目录具有运行时程序集

请注意如何涉及大量DLL。旧版本的.NET Framework被拆分为许多子程序集。NET Native对于防止它扼杀冷启动时间非常重要。它只使用实际使用的方法编译所有这些程序集,并将它们合并回blob

非常令人费解的是,一定有一台机器在某个地方知道如何保持所有这些球在空中。也有点吓人,你可能会想,10年后这个装置是否还能用


更新:但事实并非如此,自从我第一次写这篇文章以来,发生了很多变化。NETCore 5版重新编号为刚刚发布的1.0版2.0版。该团队承认,拥有如此多的程序集只是一个临时解决方案,以便于进行更改。我怀疑这只会在众所周知的版本3开始稳定下来。

关于这个问题的答案非常清楚。我真的不确定这是一个诚实的问题还是一个伪装的咆哮。这是一个问题,文档中没有为DLL本身指定任何路径,请停止智能对话,如果可以解释,请这样做。以下是文档中的直接引用:“软件包文件夹包含每个已安装软件包的子文件夹。此子文件夹包含软件包安装的文件。它还包含包文件本身(即.nupkg文件,它是一个.zip文件,包含包中包含的所有文件)。“更不用说,如果您查看了所有文件夹,则很难完全忽略包文件夹。”“。根据包资源管理器,您试图在此处显示的特定包不包含任何DLL,它只有一个runtime.json。似乎这个包的唯一任务是确保安装其他特定库的最低版本。