Visual studio Nuget依赖解析
以MsTest.TestAdapter 1.4.0版为例,我试图了解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解析的,那么它从哪里得到这个依
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