我的三层结构中有BLL、DAL、DBUtilities、Enum和Model这几个文件夹,分别为类库。在Enum类库中有一个名为RoleName.cs的类文件,其中有以下代码:
public const string User_Delete = "Auser_delete";
public const string Myfirst = "Amyfirst";我在页面的后台用Enum.RoleName.myfirst可以正常引用该属性,然而我在vs2005环境下将public const string Myfirst = "Amyfirst"; 修改为:public const string Myfirst = "Amyfirst1"; 存盘后在页面的后台用Enum.RoleName.myfirst1 就会提示找不到myfirst1这个类属性,显然系统感知Enum.RoleName.cs的变化,甚至我将类中的public const string Myfirst = "Amyfirst"; 删去,在页面的后台仍可以引用Enum.RoleName.myfirst这个类属性。
请问怎样才能使得我任意修改某个类库的类文件后能立刻生效?

解决方案 »

  1.   

    MyFirst1 而不是myfirst1 注意大小写
      

  2.   

    主要是重新生成Enum这个类库,因为你改动了他
      

  3.   

    第一步是重新编译Enum类库,第二步删除原来的,重新引用一下Enum这个dll。 你这个项目怎么建的我不知道,但是有些时候确实你新生成的dll他不会给你自动引用,所以需要你删除了后重新引用一次
      

  4.   

    我现在是这么做的:用vs 2005打开这个三层主项目,然后用vs2005用打开项目的方式再打开三层中的Enum,修改代码后编译一下。然后再切换到三层主项目,重新生成解决方案,才能够最终得到Enum.RoleName中的修改的新值。
    真够麻烦的,若我还要同时修改BLL、DAL、DBUtilities和Model类库中的类文件代码的话,看来就得用vs2005同时打开这些类项目,逐个改完后再切换到主项目重新生成解决方案才能搞定,好个麻烦。
      

  5.   

    将dll单独放到别的解决方案里,那么它修改了之后在“引用”里就要找到这个dll然后按鼠标右键并选择“刷新”。或者你可以关闭解决方案,然后再重新打开解决方案。在同一个解决方案下打开多个工程的缺点是如果你编译网站结果往往把所有并没有修改的其它工程也全都重新生成一遍。尽管可以创建自定义的“解决方案配置”来区分需要编译那些工程,也还是麻烦。“刷新引用”是比较方便的做法。
      

  6.   

    修改,要重新生成DLL。再复制到引用DLL项目里