Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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 Nuget依赖解析_Visual Studio_Nuget_Mstest - Fatal编程技术网

Visual studio Nuget依赖解析

Visual studio Nuget依赖解析,visual-studio,nuget,mstest,Visual Studio,Nuget,Mstest,以MsTest.TestAdapter 1.4.0版为例,我试图了解NuGet如何在安装期间解析此软件包的依赖项 我对解决每个包的哪个版本的细节不感兴趣,但对该信息的位置感兴趣 如果在任意文件夹中执行以下命令: nuget install -source https://api.nuget.org/v3/index.json MSTest.TestAdapter -version 1.4.0 您将看到,在安装结束时,将安装50个软件包 假设这些依赖项是由NuGet解析的,那么它从哪里得到这个依

以MsTest.TestAdapter 1.4.0版为例,我试图了解NuGet如何在安装期间解析此软件包的依赖项

我对解决每个包的哪个版本的细节不感兴趣,但对该信息的位置感兴趣

如果在任意文件夹中执行以下命令:

nuget install -source https://api.nuget.org/v3/index.json MSTest.TestAdapter -version 1.4.0
您将看到,在安装结束时,将安装50个软件包

假设这些依赖项是由NuGet解析的,那么它从哪里得到这个依赖项树呢?我查看了包裹信息(nuspec、道具、目标),没有找到任何线索

有什么想法吗

如果“explicity states”指的是nuget规范上的dependencies标记,那么我必须说我的目标是.NET 4.5,而不是.NETCoreApp1.0。这将如何工作


正如Lex所说,“包本身明确说明了什么是直接依赖关系”,根据,我们可以知道这个包的依赖关系树如下:

<dependencies>
  <group targetFramework=".NETCoreApp1.0">
    <dependency id="NETStandard.Library" version="1.6.1" />
    <dependency id="System.Diagnostics.TextWriterTraceListener" version="4.3.0" />
  </group>
</dependencies>
在本例中,nuget仅获取.NET 4.5的依赖项。查看文档以了解更多详细信息

注:

install命令不会修改项目文件或packages.config; 通过这种方式,它与恢复类似,因为它只会将包添加到 但不会更改项目的依赖项

要添加依赖项,请通过包管理器添加包 用户界面或Visual Studio中的控制台,或修改packages.config,然后运行 安装或恢复


希望这能有所帮助。

包本身明确说明了什么是直接依赖项,以便NuGet可以轻松地解决所有依赖项。如果“明确说明”是指NuGet规范上的依赖项标记,那么我必须说我的目标是.NET 4.5,而不是.NETCoreApp1.0。这将如何工作?“这将如何工作”。NET Framework已经有了所有必需的类,这就是它不需要其他依赖项的原因。如果我理解正确,这意味着所有50个依赖项都来自NETStandard.Library、System.Diagnostics.TextWriterTraceListener及其依赖链,对吗?当我们在Visual Studio项目中引用MSTest.TestAdapter时,我们不会在解决方案“packages”文件夹中看到所有这些包,但会在bin目录中看到这组文件。这些软件包在本地devenv中的存储位置?谁将副本复制到bin文件夹,因为它们没有在.csproj?@IgorKondrasovas中引用,-
如果我理解正确,这意味着所有50个依赖项都来自NETStandard.Library、System.Diagnostics.TextWriterTraceListener及其依赖项链,对吗?
是的,你是对的。@IgorKondrasovas,
这些包在本地devenv中的存储位置?谁将副本复制到bin文件夹,因为它们在.csproj?
中未被引用?如果您使用.zip重命名该包并将其解压缩,您将在文件夹net45下找到文件
mstest.testadapter.props
。打开该.props文件,您将获得内容
…preservedlatest…
,此设置将dll文件复制到bin文件夹。太棒了!现在,我只需要调查在使用VisualStudio时这些包都存储在哪里。我的项目使用packages.config,这些依赖项不在“packages”文件夹中。可能是某个用户/计算机级文件夹…@IgorKondrasovas,
我的项目使用packages.config,并且这些依赖项不在“packages”文件夹中
使用setting``检查您的解决方案中是否有任何nuget.config,如果是,这些依赖项不在“packages”文件夹中。
nuget install -source https://api.nuget.org/v3/index.json MSTest.TestAdapter -version 1.4.0 -Framework 4.5