使用 csproj 在 NuGet 包中包含非托管 DLL

2024-03-07

我正在开发一个依赖于非托管 DLL 的 .NET Core 2.1 库。我还想将非托管 DLL 包含在 NuGet 包中。我遇到的问题是,如果我尝试指定中的所有信息.csproj文件,该dotnet build进程抛出以下警告:

warning NU5100: The assembly 'content\lib\subdir\somedll.dll' is not 
    inside the 'lib' folder and hence it won't be added as a reference 
    when the package is installed into a project. Move it into the 
    'lib' folder if it needs to be referenced.

我知道我可以通过编写一个来嵌入非托管DLL.nuspec https://stackoverflow.com/questions/47400472/include-unmanaged-dll-from-nuget-package-to-web-deploy-package(事实上​​,我有)。然而,似乎我不需要用最新的来写一个.csproj文件格式。

问题:我怎样才能使用.csproj文件以将非托管 DLL 嵌入 NuGet 包中?

  • 指定<ItemGroup><None> in the .csprojfile 似乎包含输出目录中的文件,但它们不会将其放入 NuGet 包中。
  • 指定<ItemGroup><Content>在里面.csprojfile 会将它们添加到 NuGet 包中,但位于 Content 目录而不是 Lib 目录中。

如果我真的必须同时拥有.csproj文件和一个.nuspec文件中,放置元数据的最佳实践是什么?在里面.csproj文件?在里面.nuspec文件?维护并同步两者?工具链中有什么东西可以为我做到这一点吗?

我正在使用 Visual Studio Code V1.24 和 .NET Core/dotnet V2.1。


您需要在元素上指定显式包路径元数据,以便 dll/so/dylib 文件最终位于包中的正确位置,以便将其识别为运行时特定的本机 DLL:

<ItemGroup>
  <None Include="unmanaged.dll" Pack="true" PackagePath="runtimes\win-x64\native" />
</ItemGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 csproj 在 NuGet 包中包含非托管 DLL 的相关文章

随机推荐

  • 如何在从url加载的ImageView中淡入图片

    我想对 ImageView 应用淡入动画 以创建从 url 加载的图像在下载完成时淡入的效果 我知道如何将图像从 url 下载到 ImageView 例如这个答案 https stackoverflow com questions 2471
  • 如何通过 Reasoning 实现 Apache Jena 中命名空间之间的映射?

    Goal 我不想在本体之间实现基于规则的映射 以完成数据迁移的常见任务 实现目标的方式 为了实现这一点 我开发了一个抽象数据结构 它能够存储任何数据类型的 xml 表示形式提供的所有信息 然后我编写了一个解析器 它根据目标文档类型定义构造了
  • 获取远程日志,而不是提交

    如何在不获取更改 提交的情况下获取远程日志 我只想查看日志 看看自上次以来是否有任何新的更改pull 基本上可以避免stash or commit我的改变先 git 帮助文件有这个例子 它以倒置的形式应该给出我想要的结果 git log m
  • WPF 中带有标题的边框

    有谁知道如何在 WPF 中获得带有标题的边框 即网络浏览器显示 标签的方式 有没有一种简单的方法 比如设置属性 或者我必须制作一个 ControlTemplate 也许是一个GroupBox http msdn microsoft com
  • 使用 JUnit 比较 ArrayList 是否相等的简单方法?

    使用 JUnit 比较 ArrayList 是否相等的简单方法是什么 我需要实现相等接口吗 或者有一个简单的 JUnit 方法可以使它更容易吗 对于列表相等性 您无需执行任何特殊操作 只需使用assertEquals即可 ArrayList
  • Python __enter__ / __exit__ 与 __init__ (或 __new__)/ __del__

    我已经搜索过 但找不到任何使用 python 的充分理由 enter exit 而不是 init or new del 我明白那个 enter exit 旨在与使用with作为上下文管理器的声明 以及with声明很棒 但与之相对应的是 这些
  • 如何循环关闭容器

    我有一个产品列表 我想在产品 Feed 中展示广告 我想要类似的东西 div div Bla div div Bla div div Bla div div div Adsense Stuff div div div Bla div div
  • 如何正确使用温斯顿

    我已阅读使用winston 包登录node js 的文档 我的问题 我是否需要将日志模块添加到需要的每个页面logging 还是温斯顿以某种方式拦截console log and console error 谢谢你的时间 通常 您需要在使用
  • jquery 使用 html5 模式进行验证

    如何使 jQuery 验证 支持 HTML 5 模式 如果不需要在每个字段上指定模式 那就太好了 我知道我可以做到这一点 如下 但是有更好的方法吗 form validate rules password pattern A Za z0 9
  • servicestack with funq - 按照惯例自动装配

    我有一个在其构造函数中采用 IMyDependency 的服务 IMyDependency MyDependency 和服务都位于同一个程序集中 MyDependency 有一个单一的 公共的 无参数的构造函数 令我惊讶的是 这不起作用 c
  • 如何让 github actions 工作流程使用机器人名称将生成的文档推送到同一组织中的其他存储库

    我正在github上开发一个python包 在 github 的一个组织下我有两个存储库myorg package and myorg documentation The packagerepo 包含 python 包以及构建 sphinx
  • glmnet - 变量重要性?

    我正在使用 glmnet 包来执行 LASSO 回归 有没有办法获得所选单个变量的重要性 我考虑对通过 coef 命令获得的系数进行排名 即距零的距离越大 变量越重要 这是一个有效的方法吗 感谢您的帮助 cvfit cv glmnet x
  • 使用loadfunc pig UDF将protobuf格式文件加载到pig脚本中

    我对猪的了解很少 我有 protobuf 格式的数据文件 我需要将此文件加载到 Pig 脚本中 我需要编写一个 LoadFunc UDF 来加载它 说函数是Protobufloader 我的 PIG 脚本是 A LOAD abc proto
  • 如何使用 PHP 和 JQuery 开发基于 Web 的 XMPP 聊天工具?

    我正在寻求开发一个网站 该网站具有网站访问者和网站管理员之间的聊天功能 我知道最好的方法是使用 XMPP 但我没有使用它的经验 我希望使用 PHP 来实现这一点 我已经下载了 XMPPHP 并编辑了一个示例来向 GMail 中的 Googl
  • 数据库中存储的平均操作时间

    我需要计算存储在数据库中的所有操作的平均时间 我存储操作的表如下所示 creation time operation type operation id 2017 01 03 11 14 25 START 1 2017 01 03 11 1
  • 如何使用 Google Sheets 应用程序脚本将 JSON 中的多个字段仅提取到 Google Sheets 中

    function import inventory test e var options method GET headers Content Type application json Prefer code 200 Prefer dyn
  • Jupyter 笔记本中的方程编号

    事实是 在官方文档中Jupyter 激励示例 http jupyter notebook readthedocs io en latest examples Notebook Typesetting 20Equations html Equ
  • 以编程方式截取屏幕截图时,Cardview 会失去其半径

    我在卡片视图中有约束布局 卡片视图在屏幕上看起来不错 仅当截取屏幕截图时 它才会被渲染为位图 即失去角点 我添加了位图视图的图片 约束布局与圆角重叠 我需要边到边的圆度 下面是正确显示圆角的模拟器的屏幕截图 这是渲染为位图的视图 下面是我的
  • MySQL:了解映射表

    当为具有多对多关系的业务目录构建类别导航系统时 我知道创建映射表是一个很好的做法 类别表 类别 ID 类别名称 企业表 企业名称 企业名称 品类映射表 BusinessId CategoryId 当我连接类别表和业务表来创建映射表时 这会给
  • 使用 csproj 在 NuGet 包中包含非托管 DLL

    我正在开发一个依赖于非托管 DLL 的 NET Core 2 1 库 我还想将非托管 DLL 包含在 NuGet 包中 我遇到的问题是 如果我尝试指定中的所有信息 csproj文件 该dotnet build进程抛出以下警告 warning