【发布时间】:2021-06-26 20:54:42
【问题描述】:
我正在尝试打包一个引用另一个名为“TestDLL”的 DLL 的类库
目标是 .NET 框架 4.8,我正在使用 NuGet 包资源管理器来构建包。 我添加了一个 lib 文件夹和一个以目标框架命名的文件夹,其中我有主项目的 dll,然后是引用的 DLL,我称之为“TestDLL”
见下文:
这里是元数据(nuspec 内容),其中包含对 TestDLL.dll 的引用
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
<metadata>
<id>Nexbotix.OCR</id>
<version>1.0.7</version>
<authors>Nexbotix.OCR</authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package Description</description>
<dependencies>
<group targetFramework=".NETFramework4.8" />
</dependencies>
<references>
<group targetFramework=".NETFramework4.8">
<reference file="TestDLL.dll" />
</group>
</references>
</metadata>
</package>
我从包资源管理器将它打包成一个 nupkg 文件。一切似乎都很好,因为我能够将 nuget 包导入到我的目标项目中而不会出错。然后,当我去运行代码时,如果我尝试从 TestDLL.dll 中引用一个对象,我会收到这个错误,指出无法找到引用 TestDLL.dll 的文件。
显然我构建 nuget 包文件结构的方式有问题。 我只是想在 .NET Framework 中打包一个类库,该类库本身引用另一个 DLL,该 DLL 对导入 nuget 包的任何项目都是可见的。谁能帮我指出正确的方向?
【问题讨论】:
-
TestDLL.dll 编译成什么框架版本,TestDLL 是用任何依赖项构建的?
-
TestDLL.dll 也被编译为 .NET Framework 4.8,是的,它确实有自己的程序集引用和 NuGet 包引用
-
请在您的项目的程序集中分享您的 DLL 列表树的图片。
-
尝试将 TestDll.dll 粘贴到
\build\net48中,然后我认为您甚至不需要 Reference 元素 -
将 TestDll.dll 放入 \build\net48 恐怕没有用
标签: c# .net visual-studio dependencies nuget