清理NuGet缓存后构建项目提示Remotion.Linq.dll未找到求助
解决NuGet缓存清理后找不到非项目依赖DLL的构建错误
嘿,这种情况我之前也碰到过!明明那个Remotion.Linq.dll不是自己项目直接引用的,清理完NuGet缓存后构建就炸了,其实是间接依赖的锅——你项目里引用的某个包,它依赖了Remotion.Linq,构建时会自动去拉这个间接依赖的文件,但缓存清了之后本地没存,就报错了。给你几个亲测有效的解决步骤:
- 重新还原所有NuGet包:如果是.NET Core/.NET 5+项目,在解决方案根目录开命令行跑
dotnet restore;用Visual Studio的话,右键解决方案选「还原NuGet包」就行,这会重新下载所有需要的依赖,包括藏在间接引用里的Remotion.Linq。 - 排查间接依赖来源:想知道是哪个包带进来的Remotion.Linq?可以跑
dotnet list package --include-transitive命令,它会列出项目所有的依赖(包括间接的),一眼就能看到根源。有时候可能是某个包的版本和本地缓存路径不匹配,导致找不到文件。 - 清理+重建解决方案:先在Visual Studio里点「生成」→「清理解决方案」,把旧的构建缓存清干净,然后再重新构建。很多时候残留的旧路径信息会搞事情,清完就好了。
- 手动清除obj/bin文件夹:如果上面的方法都没效果,试试手动删掉项目里的
obj和bin文件夹,然后再重新还原包。这两个文件夹里的缓存文件有时候会顽固保留错误的引用路径,删了就解决问题了。 - 检查NuGet源是否正常:确保你的NuGet源(比如nuget.org)是可用的,要是源连不上,包下载不下来自然会报错。可以在Visual Studio的「工具」→「选项」→「NuGet包管理器」→「包源」里检查下源的状态。
放心,虽然这个DLL不是你直接加的,但构建过程会自动处理所有层级的依赖,所以缓存清了之后这些间接依赖的文件丢失就会触发错误,按上面的步骤来大概率能解决!
内容的提问来源于stack exchange,提问作者Tecnoliq Developer
相关产品推荐
相关产品推荐

