首页 > 解决方案 > 为什么我的 DLL 被覆盖了,我能做些什么来阻止它?

问题描述

这是我知识有限的领域,所以如果我缺少任何关键信息,请提出问题,我会尽力提供。直到最近,我还能够将 DLL 从一个项目的 bin 文件夹复制到另一个项目的 bin 文件夹,但是突然间,当我在第二个项目中进行构建时,DLL 被覆盖了。

这个问题是关于我正在使用的 2 个 ASP.NET 项目,项目 A 完成了繁重的工作,并包含数据访问层、业务逻辑层等。它被其他项目使用。项目 B 位于顶层,作为一个抽象层来处理来自 UI 的请求,只向前端提供所需的东西。当我对项目 A 进行更改(例如更新模型)时,我会将 DLL 从项目 A 的 bin 文件夹复制到项目 B 文件夹并重新构建,项目 B 将能够看到更新的模型。

但是现在当我遵循相同的过程时,在重建项目 B 时,DLL 将被覆盖。

bin 文件不是源代码的一部分,当部署到 test 或 prod 环境时,更新被包装在一个 nuget 包中,因此部署过程如下所示:

  1. 在测试服务器上构建项目 A
  2. 在项目 B 中获取在构建期间创建的更新的 nuget 包
  3. 将项目 B 部署到测试服务器

我已经通读了 Stack Overflow 并且看到了对全局访问缓存的提及,但是当我通过在开发人员命令提示符下运行 gacutil -l 查看日志时,我看不到任何特定引用的任何内容项目 A。

当我使用 JetBrains dotPeek 检查 DLL 时,我可以看到项目 A 中的 DLL 确实包含更新的模型。

欢迎针对此问题提出任何建议。谢谢。

标签: c#asp.netdllbin

解决方案


推荐阅读