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)有任何文件内容上的改变,在这种情况下我们的比较版本的方案就不可行了。

  • 相关阅读:
    HDU 4539郑厂长系列故事――排兵布阵(状压DP)
    HDU 2196Computer(树形DP)
    HDU 4284Travel(状压DP)
    HDU 1520Anniversary party(树型DP)
    HDU 3920Clear All of Them I(状压DP)
    HDU 3853LOOPS(简单概率DP)
    UVA 11983 Weird Advertisement(线段树求矩形并的面积)
    POJ 2886Who Gets the Most Candies?(线段树)
    POJ 2828Buy Tickets
    HDU 1394Minimum Inversion Number(线段树)
  • 原文地址:https://www.cnblogs.com/zanxiaofeng/p/1945536.html
Copyright © 2011-2022 走看看