zoukankan      html  css  js  c++  java
  • 对于项目只引用,但没有使用的情况下,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:      }

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

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

  • 相关阅读:
    课后作业10.13
    大道至简:软件工程实践者的思想 读后感
    课程作业01
    动手动脑10.13
    动手动脑
    js矢量图类库:Raphaël—JavaScript Library
    OSGi bundle之间互相通信的方法
    OSGi bundle 与 fragment
    Spring.DM web 开发环境搭建
    Spring.DM版HelloWorld
  • 原文地址:https://www.cnblogs.com/zbw911/p/2934461.html
Copyright © 2011-2022 走看看