我以前也在这里问过这个问题,但是并没有找到满意的答案,也可能是我没说明白(我的语言表达能力非常差)
当初学asp。net的时候,老师只是教些很简单基础的东西,我也能做个小网站的程度。因此这个问题也是后来再工作中才遇到我才发现的。可能我有些地方说的不对,请大家谅解用asp。net做了一个网站,放到服务器上运行一段时间后,需要修改一些功能,那么由于网站已经是经过编译过的,.cs文件都编译成了.bin了,我得需要找原来带有.cs的文件进行修改然后把全站再重新编译一下,除数据库外重新把说有文件都覆盖掉(再重新编译后。所有bin文件名都变了。。)。是应该这样操作么??
因为我只是修改了一个页面的.cs文件上的功能,编译后,是多个.cs文件都编译成几个.bin了。我感觉如果是这样的话,那么未免太繁琐了吧,有源文件还好,如果没有呢??那该怎么修改??(网站是能从ftp下来的,如果是asp的话就好修改了)我也听说过三层架构。说是需要修改功能的话,只需要修改业务逻辑层就可以了。修改界面就修改表现层就行,听着是十分的好。但是我还是没绕过这坎就是如果都编译成bin文件的话,不是还得找带有.cs的源文件修改么??因为我对net了解的不多,所以问的问题非常幼稚,请大家见谅。但这个问题的确是困扰我很长时间了多谢

解决方案 »

  1.   

    能明白你的意思,从你的叙述中完全能明白初学者的困惑,这也就是为什么分层(像你说的三层架构)在实际项目中的重要意义,把逻辑写在不同的层中,编译成不同的dll调用,这样修改的时候只要调用修改的dll就行了。
      

  2.   

    如果网站没有真正编译,例如aspx、ascx、ashx等等文件里还能看到设计代码,那么你就可以嵌入自己的c#代码来重写、监听、伪造原来的流程,而不需要去找什么.cs文件。
      

  3.   

    也可以像asp一样不编译,直接cs,aspx文件都一起拷贝到网站上去的,这样不是想改就可以改了么
      

  4.   

    一般都找回源代码重新修改编译下,这个只是量大量小的问题而已,也因此,才会考虑用三层结构,这样就只需编译要修改的dll就行了,不用全部编译一遍
      

  5.   

    编译要修改的dll,这是什么意思呢?抱歉可能是我比较笨吧,比如说我有1.aspx,2.aspx,3.aspx等等以及对应的.cs文件,编译后,出现了一个aa.bin和bb.bin两个文件,我只是要修改2.cs文件里的功能而已,我找源文件2.cs修改后,请问然后再怎么做呢??我以前的做法:重新全部编译一下,然后全部上传覆盖(因为重新编译后,连bin文件名都变了。)我虽然知道2.aspx用的bin文件事aa.bin但是我不能修改bin文件啊。
    请问该如何操作??多谢了
      

  6.   

    如果上传得网站包括原代码,你只要修改本地的代码并编译通过,然后将修改的文件拷到网站即可,网站的.net framework 会替你编译的,没必要全部重新提交。
      

  7.   

    你发布或者生成网站的时候,选择 “使用固定命名和单页程序集” 就好了
    这样把a.aspx生成a.dll,b.aspx生成b.dll,这样修改网站的时候,只要替换掉相应的DLL文件就好了
      

  8.   

    你把所有的代码都拷进去,dll文件也是要引用这些文件啊,那么就不需要再一次的编译了
      

  9.   

    DLL,BLL和DAL没有修改,如果只修改了.ASP页面和.CS话,在服务器上直接覆盖这2个就OK了.
      

  10.   


    我的意思是,如果编译后,我在修改的话,应该如何操作??修改其中的一个.cs文件后,然后该如何操作(最好不要全部覆盖)
    因为或许修改有些频繁,我每次修改.cs文件后,重新编译,然后全部覆盖。。
      

  11.   


    修改哪个页面自己记住。。发布成功后改过哪个页面传哪个页面上去。。覆盖bin文件夹
      

  12.   


    首先a.cs b.cs. c.sc同属一个aa.bin的文件,修改完a.cs发布的时候,就aa.bin就可能变成bb.bin了。那我还得修改b.cs,c.cs的链接,如果是很多个cs文件都编译成一个bin文件,那不是都得改么、?
      

  13.   

    项目是COPY别人的嘛  怎么可能没源码喊你们老板来改
      

  14.   

    类库项目只生成一个dll,这样类库更新后,替换相应dll就可以。网站项目默认发布的时候,aspx页面的cs会随机生成dll名字,类似这样: App_Web_cetf7wmb.dll使用   “使用固定命名和单页程序集”发布后,类似这样:App_Web_login.aspx.dfaa92f0.dll  能看到页面的名字了,这样更新单个页面就直接更新这个dll就可以了。当然也可以直接传源代码上去啊,不过这样不推荐
      

  15.   


    55555,总算是有人看明白我要说什么了看来我的语言表达能力是太差了
    每次网站发布后,都会生成新的dll名字,这样我不得不替换掉所有有关的页面。。(全部替换就是因为不用找哪个页面用的是哪个dll)
    大家都是使用“使用固定命名和单页程序集”发布么???
      

  16.   


    VS有的项目发布也有很多方式参数啥的,可能会频繁更新的时候就用这个吧,不过据说在发布后性能上有些小差别,没深入研究过。看看这里:http://www.cnblogs.com/ipusr/articles/647712.html    
      

  17.   

    1、直接编译全部覆盖,你认为繁琐的
    2、把你的aspx和.cs两个文件都直接放上去
    3、编译为一个指定的dll,每次只更新这个dll就行。