ASP.NET 5 Framework Dependent Publish发布后输出文件夹出现旧DLL问题求助
发布输出DLL版本低于本地Release目录版本的问题排查点
- 检查项目文件
.csproj中的NuGet引用配置
确认所有Microsoft.EntityFrameworkCore相关的包引用都显式指定了统一的版本号,且没有带Condition="'$(Configuration)'=='Debug'"这类仅Debug生效的条件限制。如果存在传递依赖拉低版本的情况,可在项目根目录的Directory.Packages.props文件中统一管控所有NuGet包版本,避免版本冲突。 - 清理NuGet缓存后重试
指定win-x64作为目标运行时的发布流程会拉取对应RID的运行时专属包,本地NuGet缓存如果存在旧版本的对应包会被优先调用。可运行命令dotnet nuget locals all --clear清理全部NuGet缓存,之后重新执行还原、生成、发布操作。 - 修改发布配置文件强制使用本地生成输出
默认依赖框架发布逻辑会优先从NuGet缓存拉取依赖项,而非直接使用本地bin/Release下的生成结果。你可以打开对应的发布配置.pubxml文件,在PropertyGroup节点下添加两个配置项:
配置后发布时会强制复制本地生成时锁定的所有依赖文件到输出目录。<UseCommonOutputDirectory>True</UseCommonOutputDirectory> <CopyLocalLockFileAssemblies>True</CopyLocalLockFileAssemblies> - 检查NuGet源配置
确认全局和解决方案级别的NuGet.config中没有优先级更高的私有源,对应私有源中不存在版本更低的同名称包,导致发布时拉取了旧版本包。
另外你提到的项目未包含bin目录不属于问题诱因,bin是默认的生成输出目录,本身就不需要纳入项目文件列表。
内容的提问来源于stack exchange,提问作者Paul Marangoni
相关产品推荐
相关产品推荐

