首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从package.json获取包文件夹中的项目依赖项DLL

从package.json获取包文件夹中的项目依赖项DLL
EN

Stack Overflow用户
提问于 2020-08-21 10:29:10
回答 1查看 679关注 0票数 0

我希望从包文件夹中检索在项目NuGet中注册的package.config依赖项DLL。

package.config (样本):

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<packages>
     <package id="Humanizer.Core" version="2.6.2" targetFramework="net472" />
</packages>

结构:

代码语言:javascript
复制
- Folder
   - ProjectFolder
      - packages.config <-- config file
   - Packages
       - Humanizer.Core.2.6.2
            - lib
                - netstandard1.0
                    - Humanizer.DLL
                - netstandard2.0
                    - Humanizer.DLL
   - Solution

现在,我可以从package.config中检索信息,以获得id +版本,从而知道我需要在Packages文件夹中的哪个文件夹。然后,我确信有一个lib文件夹,所以这是好的。但后来我被困住了。因为lib文件夹包含一个netstandard1.0和/或netstandard2.0 (或其他)文件夹,而package.config只有一个不匹配的targetFramework="247"属性。

知道我该怎么处理这事吗?也许我做错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-24 03:43:18

从package.json获取包文件夹中的项目依赖项DLL

,实际上是,我很困惑为什么你会得到targetframework="247"。我想知道它是否是自己改变的。

因此,请在Tools-->NuGet Package Manager-->Package Manager控制台下运行update-package -reinstall以重新安装nuget和依赖项。

targetframeworkpackages.config文件中意味着当前项目的框架版本。它指的是当前项目的框架版本。在此框架版本下将这些nuget包安装到项目中。

=======================================

请注意:

当nuget包安装它的依赖项时,它遵循的是最近赢得的规则。它将安装更接近项目框架版本的依赖项。

你可以检查一下有关NuGet如何解决包依赖关系的文档。

作为一个例子,,如果您的项目是netframework4.7.2的目标,并且具有像netframework 4.7.1netframework 4.6.2这样的依赖项,它将安装最接近主项目net472的依赖项net framework4.7.1的版本。

作为您的描述Humanizer.Core具有像net standard 1.0netstandard 2.0这样的依赖关系,

也像本文件说的那样,

net standard 1.0支持的最小版本是net framework 4.5,而net standard 2.0支持的最小版本是net standard 4.6.1

===========================================================

如果net framework 4.5 <=您的主要项目框架版本< net framework 4.6.1

nuget包将安装net standard 1.0的依赖项。

如果net framework 4.6.1 <=是您的主要项目框架版本,则nuget包将安装net standard 2.0的依赖性。

如果您有较新的版本依赖性,并且它与您的主项目兼容,它将安装最新版本。

除了之外,您还可以上传项目并检查xxx.csproj文件的hintpath,以查看该项目使用的依赖项的哪个版本。

如果您的项目目标是>=net framework 4.6.1,它将安装net standard 2.0依赖项。

========================

测试

您只需创建两个分别针对Net Framework4.5.2Net Framework 4.7.2的项目。然后在这两个项目中安装这个包来查看行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63521104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档