NuGet包管理器未安装正确版本的Ubiety.Dns.Core问题求助
解决Ubiety.Dns.Core指定版本与编译输出版本不一致的问题
以下是几个可行的解决步骤,帮你彻底替换掉旧版本:
检查依赖链,定位旧版本来源
打开项目的NuGet包管理器,切换到「已安装」标签确认Ubiety.Dns.Core确实是4.2.2版本。接着查看「依赖项」→「NuGet」下的依赖树,看是否有其他引用的包间接引入了2.2.1版本。也可以用NuGet控制台执行命令查看完整依赖:# .NET Framework项目 Get-Package -ProjectName 你的项目名 -AllVersions # .NET Core/.NET 5+项目 dotnet list 你的项目文件路径.csproj package在项目文件中强制锁定版本
右键项目选择「编辑项目文件」,添加配置强制所有场景使用4.2.2版本:<ItemGroup> <!-- 直接指定版本 --> <PackageReference Include="Ubiety.Dns.Core" Version="4.2.2" /> <!-- 强制更新所有依赖引用的该包版本 --> <PackageReference Update="Ubiety.Dns.Core" Version="4.2.2" /> </ItemGroup> <!-- 开启绑定重定向(适用于.NET Framework) --> <PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>如果是.NET Framework项目,还可以在app.config/web.config里添加绑定重定向,确保运行时加载正确版本:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Ubiety.Dns.Core" publicKeyToken="3a4669420f67278c" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.2.2" newVersion="4.2.2" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>彻底清理后重建项目
- 点击菜单栏「生成」→「清理解决方案」
- 手动删除项目目录下的
obj和bin文件夹,清除残留的旧版本DLL - 重新点击「生成」→「重建解决方案」
清除NuGet缓存
打开NuGet包管理器设置,找到「缓存」选项点击「清除所有NuGet缓存」;或者手动删除本地缓存目录%userprofile%\.nuget\packages\ubiety.dns.core下的2.2.1版本文件夹,避免编译时从缓存拉取旧版本。检查编译/发布配置
确认项目的Debug/Release配置没有单独指定不同的NuGet版本,同时检查项目属性的「生成」标签,确保输出目录没有指向包含旧DLL的其他路径。
内容的提问来源于stack exchange,提问作者Koops128
相关产品推荐
相关产品推荐

