You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework DLL上传私有NuGet后第三方依赖缺失问题

问题根因与修复方案

你遇到的第三方程序集、自身程序集无法被引用的问题由两处核心配置错误导致:

1. 核心问题原因

你当前nuspec的<files>节点仅打包了两个第三方依赖DLL,完全没有包含你自身项目编译生成的Tools.dll,这是导致安装包后无有效引用的最核心原因。
同时你显式声明了<references>节点,此时NuGet只会将你列在该节点内的DLL自动添加到项目引用,未列入的DLL即使被打包到lib目录也不会被自动引用。
你遇到的NU5128警告属于规范类警告,不影响包的安装使用,和引用失效问题无关。

2. 修复步骤

按如下规则修改你的nuspec配置即可:

第一步:补全自身程序集的打包规则

在<files>节点新增你项目编译输出的主DLL,推荐使用相对路径避免不同设备编译路径不兼容:

<files>
    <file src="Premiata.png" target="images" />
    <!-- 新增:打包自身项目输出的主程序集,src路径改为你实际的编译输出路径 -->
    <file src="bin\Release\Tools.dll" target="lib/net462" />
    <file src="C:/worksrc/DotNet/Librerie/Newtonsoft.Json/Newtonsoft.Json.dll" target="lib/net462" />
    <file src="C:/worksrc/DotNet/SuiteLibrary/BINARY46/hasp_net_windows.dll" target="lib/net462" />
</files>

第二步:补全引用列表

在<references>节点新增自身主程序集的声明:

<references>
    <group targetFramework="net462">
        <!-- 新增:自身主程序集引用 -->
        <reference file="Tools.dll" />
        <reference file="Newtonsoft.Json.dll" />
        <reference file="hasp_net_windows.dll" />
    </group>
</references>

第三步:消除NU5128警告

该警告是因为旧版icon放置规则不符合当前NuGet规范,修改<metadata>下的icon路径即可:

<icon>images/Premiata.png</icon>

补充说明

如果你的项目还有Tools.pdb调试符号文件、Tools.xml注释文件需要一起打包,也可以在<files>节点同步添加对应路径的配置即可。

内容的提问来源于stack exchange,提问作者IssamTP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:48:02