zoukankan      html  css  js  c++  java
  • 修改类的命名空间引发的发布问题

      以前每次发布程序之前我们都会用VS2010的版本比较工具去比较出本次程序修改都修改了那些.cs、.config等文件,从而最终确定哪些Project、config需要被包含在本次发布包中,但这种做法在我们将一个类从一个Project(Assambly)移动到另一个Project(Assambly)时遇到了问题,导致发布出的程序部署后出现Assambly加载的问题:

      具体分析如下:

      这次修改我们将一个类从一个旧的Project(Assambly)移到了另一个新的Project(Assambly),但是其中有一些原来引用这个类的Project(Assambly)在这个重构中并没有被导致任何文件内容上的修改(但实际上编译出的Assambly中的元数据和IL代码是不一样了),所以通过比较修改版本的方法是没有办法确定这种问题的。

      虽然将一个类从一个Project(Assambly)移动到另一个Project(Assambly)会导致这种问题,但也并不一定每次都会造成这个问题。

      如果原来引用这个类的Project(Assambly)中之前没有引用过新的Project(Assambly),那么这个重构就会导致引用旧的Project(Assambly)的Project(Assambly)编译不同过,最终必须通过添加对新的Project(Assambly)的引用并修改相关cs文件来解决这个问题,当然在这种情况下我们的比较方案还是可行的。

      如果原来引用这个类的Project(Assambly)中之前就同时引用了新旧的两个Project(Assambly),并且使用这个类的.cs文件中的命名空间也都引用了新旧的两个Project(Assambly)中的命名空间,那么这个重构就不会导致引用旧的Project(Assambly)的Project(Assambly)有任何文件内容上的改变,在这种情况下我们的比较版本的方案就不可行了。

  • 相关阅读:
    Ping
    boost::python开发环境搭建
    mingw和libcurl
    ssh远程执行命令使用明文密码
    netty源码阅读之UnpooledByteBufAllocator
    Direct ByteBuffer学习
    clions的使用
    netty中的PlatformDependent
    STL之priority_queue(优先队列)
    c++线程调用python
  • 原文地址:https://www.cnblogs.com/zanxiaofeng/p/1945536.html
Copyright © 2011-2022 走看看