• 对于项目只引用,但没有使用的情况下,dll版本不再更新的一点想法


    缘起:

       这样一种情况

       三个项目 A,B,C

        C引用B, B 引用 A

        B仅对A 是一个引用,没有任何的代码调用

        在编译的时候, A的项目的DLL会被复制到 C 项目下, 但是无论怎么改 A 项目中的代码, C bin目录下的 A.dll都不再更新了.更有甚者 就算你删除了 A.dll, 再编辑 A.dll也不再会被复制过来.

        最后的无奈之下的一个解决办法就是 在 A 项目中写随便写个方法, 由B项目调用一下,这样 dll版本就更新了.

     

    类似的, 在A项目中

       1:   /// <summary>
       2:      /// 这个方法本身没有任何的意思,也不参与任何的操作,只是为了可以进行有效的编译,
       3:      /// 如果把这个方法或这个类去掉,那在编译的时候,项目中总不能得到最新版本,这是为什么呢?
       4:      /// 先记下,如果有人有更好的解决方法,请EMail给我,zbw911@gmail.com
       5:      /// </summary>
       6:      public class HookNewAlway
       7:      {
       8:          public static void Hookit()
       9:          {
      10:   
      11:          }
      12:      }

    在B项目中 :

       1:    /// <summary>
       2:      /// 这个方法本身没有任何的意思,也不参与任何的操作,只是为了可以进行有效的编译,
       3:      /// 如果把这个方法或这个类去掉,那在编译的时候,项目中总不能得到最新版本,这是为什么呢?
       4:      /// 先记下,如果有人有更好的解决方法,请EMail给我,zbw911@gmail.com
       5:      /// 实际上还应该有另一个解决方法, 在子项目中做一个 Attribute, Useage.Assembly ,
       6:      /// 这样做也应该是可以的,
       7:      /// 对于间接引用的项目,没有代码的引用,所以极有可能,VS.net的编译器将这个"多余的dll"优化掉了.
       8:      /// </summary>
       9:      class NoThingToDo
      10:      {
      11:          public NoThingToDo()
      12:          {
      13:              GameGroup.Application.EntityDtoProfile.HookNewAlway.Hookit();
      14:          }
      15:      }

    三四年前我好像在某个项目中也有过类似的问题,也是用上面的办法解决的, 几年过去了,今天又遇到了这个问题. 难道真的没有好的办法了.

      有没有更好的办法呢?....................

  • 相关阅读:
    Vmware安装CentOs7.4
    记录一次简单的springboot发送邮件功能
    jenkins 脱机下 安装插件失败
    centos8系统下docker安装jenkins
    Flask快速入门(9) — 请求扩展
    Flask快速入门(8) — 闪现flash
    Flask快速入门(7) — session
    Flask快速入门(6) — 常见的请求与响应参数
    Flask快速入门(5) — 模板渲染
    Flask快速入门(4) — CBV写法与解析
  • 原文地址:https://www.cnblogs.com/zbw911/p/2934461.html
Copyright © 2020-2023  润新知