对vs2005生成dll文件的一点疑惑

最近下载了vs2005学习,一直没有在意生成dll文件的问题

今天突然发现项目文件夹里没有bin文件夹,把生成菜单点了一边才发现用publish web site可以生成dll文件,

但有几个疑问:
1.生成的文件不能位于项目文件下,也就是说我要为此单独建立一个文件夹。

2.编译之后的文件夹里多处了一个PrecompiledApp.config文件,里面就一行代码。(目前还不知道此文件作用)
3.生成的dll文件命名为App_Web_qmippbc7.dll,很显然此名称是vs自动生成的。
4. WEBForm默认没有了NameSpace

猜想asp.net2.0的编译模式可能变了,不过似乎没有向好的方向发展
1.发布文件夹必须位于项目文件夹之外,这好像有点多此一举,没有发现什么好处,反而是项目文件夹很混乱。
2.原来的web.config文件消失了(或许是我没有发现)那么配置文件怎么办,以前的数据库连接都是放在里面的,现在该放哪里了。
3.编译的dll文件由vs自己命名了,这带来了极大的不方便,以前如果只有cs文件发生更改,只要重新发布dll文件就可以了,现在由于名称重新命名了,这样就要发布aspx和dll文件,这两个文件不是位于一级目录的,给用户的更新制造了麻烦,而且我也没有体会到这样重新命名的好处(我主要做政府项目,政府里的人很笨的,很容易更新错误,dotnet的xcopy部署给我带来了极大的优势)
4.WEBForm默认没有了NameSpace,没有看出好也没有看出坏

vs2005给我们带来优秀的体验的同时是不是也带来了一些不好的东西。微软的东西变化太大了。

相关资料 ASP.NET 2.0 Beta2中页面编译模型的变化



posted @ 2005-11-26 20:07 老Q 阅读(5341) 评论(20)  编辑 收藏 所属分类: VS2005

  回复  引用  查看    
#1楼 2005-11-26 21:06 | 感觉      
第一点确实多余

第二点要手动到添加新项中添加

第三点MS出了个发布的东东,可以只有一个DLL,不过我发布后所有ASPX页面的中文变成了乱码。
http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx


  回复  引用  查看    
#2楼 2005-11-26 21:12 | 風語者·疾風      
微軟的ASP.NET 2.0我記得是有4种編譯發佈模式了。掌握了習慣了就好了,微軟不是白癡,不會在這些方面犯這麽低級的錯誤。
  回复  引用  查看    
#3楼 2005-11-27 00:29 | QuitGame      
4.WEBForm默认没有了NameSpace,没有看出好也没有看出坏
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
好像是每个页面生成了一个名字空间,
不过我觉得问题不大,一般来说,没有那个项目需要引用Web项目

  回复  引用  查看    
#4楼 [楼主]2005-11-27 06:02 | 老Q      
如果我想还想1.1那样发布,该如何做呢?
  回复  引用  查看    
#5楼 2005-11-27 09:48 | 维生素C      
对于第一点,vs这么做的目的是部署,不是用来调试或什么的。在1.1的时候文都是要把需要文件copy出来然后部署,xcopy发挥了很大的作用。可是在2.0里可以直接这样发布到服务器上,无论是ftp还是http。当然还有一个copy website的工具可以使用,再www.vwdhosting.com上您可以深刻感受一下这种功能,个人觉得还是方便了很多。
关于PrecompiledApp.config文件,是在publish的时候自动加进去的。关于预编译和这个文件的作用,可以用下面这段文字简单大体的描述:
you can use the aspnet_compiler tool to pre-compile your application. This can be done in 2 different ways: you may let the user change the aspx page after deploying or you can pre-compile the whole site so that the pages cannot be changed. When you choose the 2nd option, all the pages are compiled into several assemblies which are placed inside the /bin directory. the pages are also uploaded but they're only used as placeholders! if you look inside you'll see that there´s no code in them and a new file (precompiledapp.config) is added to the top application dir. this file has info that let's the framework know how the pre-compilation was done.
第三个与编译模型有关,有三种编译方式。
第四个默认的是ASP
  回复  引用  查看    
#6楼 2005-11-27 10:23 | xucanzhao      
按F5的时候她会提醒你是否Debug=true;那个时候会自动添加web.config
  回复  引用  查看    
#7楼 2005-11-27 11:29 | 感觉      
# re: 对vs2005生成dll文件的一点疑惑2005-11-27 06:02 | 老Q

如果我想还想1.1那样发布,该如何做呢?
----------------------

我说过了,MS另外出了个发布的东东,你可以去下载,只有900多K,可以只有一个DLL,不过我发布后所有ASPX页面的中文变成了乱码。
http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx
  回复  引用  查看    
#8楼 [楼主]2005-11-27 12:29 | 老Q      
1.第一个问题大家讨论的结果似乎是为了方便部署。
但是我认为一个bat文件足以达到目的,这样做什么在没有意义。
2.第二个问题web.config文件需要自行添加,默认好像没有了
3.第三个问题最无聊了,随便命名dll文件,微软太霸道了,可能还没有理解到点子上,或许真如 風語者·疾風 说的那样“微軟的ASP.NET 2.0我記得是有4种編譯發佈模式了。掌握了習慣了就好了,微軟不是白癡,不會在這些方面犯這麽低級的錯誤。”。
4.名次空间的问题,我记得以前网上有一种页面传递信息的时候要用到另一个页面的类,取消了我没有发现任何好处,个人感觉得不取消有好处.
  回复  引用    
#9楼 2005-11-29 15:10 | xiao_p [未注册用户]
不明白 现在怎么弄的乱七八糟的
今天新建了个项目 端口竟然是3097…………
为什么会变成这样?
  回复  引用  查看    
#10楼 [楼主]2005-11-30 17:47 | 老Q      
现在vs调试好象对每个web项目都建立一个临时的站点,端口是随机分配的,
感觉这样很乱,呵呵,不好控制。
  回复  引用    
#11楼 2005-12-02 10:12 | fn [未注册用户]
编译方式变华大的。
  回复  引用    
#12楼 2005-12-26 22:53 | 笨猫猫 [未注册用户]
http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx
乱码是因为白痴的开发人员用的utf-8去读写我们的aspx文件,你只要把aspx文件用记事本打开,另存为utf-8格式就可以,自动命名却是不方面,改个代码得全站更新
  回复  引用    
#13楼 2005-12-26 22:54 | 笨猫猫 [未注册用户]
目前也只好用fixedname方式去编译了,可以只更新某些文件,慢慢习惯吧
  回复  引用    
#14楼 2006-03-21 16:54 | sss [未注册用户]
ssssss
  回复  引用    
#15楼 2006-03-23 11:28 | zds [未注册用户]
@笨猫猫
我按照你的方法修改了,还是乱码

  回复  引用    
#16楼 2006-04-04 09:11 | zds [未注册用户]
总算搞定了,必须每个页面指定编码格式为utf-8 ,真是垃圾工具
  回复  引用  查看    
#17楼 2006-04-19 10:54 | 北极熊,我来了!      
恩,确实。文件命名太乱了,Dll一堆。
  回复  引用    
#18楼 2007-07-05 09:17 | joyjoy [未注册用户]
在用VS2005发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的;

如果要固定生成文件名如何固定呢?有以下两种方案:

一、每个页面的程序集分别生成对应的dll;

方法:在“发布网站”的选项中,勾选“使用固定命名和单页程序集”

二、整个站点的程序集都生成为一个文件;

方法:需下载MS提供的插件,经过简单的设置可生成自定义的文件名(.dll):

Web Deployment Projects with Visual Studio 2005
下载地址:http://download.microsoft.com/download/c/c/b/ccb4877f-55f7-4478-8f16-e41886607a0e/WebDeploymentSetup.msi
MSDN说明:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/web_deployment_projects.asp

简单操作如下:
1.下载后直接安装,安装完后打开VS2005;
2. 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project],也可在要发布的网站项目上点右键.直接选取 [Add Web Deployment Project],弹出属性对话框后.设置好指定名称和存放目录添加后,可以看到当前解决方案中多了一项,有很多其它属性,就自己去设置了;
3.在刚添加的方案中点右键->[生成],就会生成相应文件和目录了
奇怪,楼上的一大群人,我想都没做过HTML自动生成或资源文件较多的网站吧,,,
其实 2005以网站模式创建工程 真的相当垃圾,,让你后期维护直接崩溃..
比如DLL名随机问题,这个楼上的都给出了解决方法,但如果大家实际做个站就知道,,最大的问题不是这里,最大的问题是:你每改一个地方(代码),你一定得得到新生成的dll文件,这样你每改源文件里一个字就要重新发布一次,,更严重的是,,发布网站asp.net编译器一定要复制你项目内的全部文件,,包扩html,,和图片,,试想一个网站如果我有几百张图片,,,html很多那种就不提了,,,我改源代码的一个字,我就得复制几百上千上万的图片等..是不是要发疯,,,2005的这种分布方式对大点的工程我想直接没法用,,改一个字也许要发布半天...
再给大家举个例子:比如你要改前台页面的一个子,,也许你直接改发布后的文件?那你就完了,,如果哪天你又发布了网站,改过的文件就被复盖,,,白改了..你会想我直接改源前台页面,那样你又要发布(不发布就得手动改@page那串...)...想想维护成本是不是高了很多????

对2005这种编译方式我查了无数资料试了无数方法没法解决,因为本身编译系统就定是要复制所有文件,,毫无办法,,,

但我还是可以告诉大家一个可行的方法:
在新建项目时,不要选新建网站,改选新建asp.net应用程序,,,就可以和2003基本一样的管理网站了,,而且也有namespace,代码的结构基本也和2003一样

2005我感觉得别的都不错,最垃圾的就是发布网站这一个功能了...维护网站直接崩溃
很希望有高手能指点,发布网站其他的解决方法..QQ50172892
  回复  引用    
#20楼 2008-03-25 14:04 | 你太差 [未注册用户]
@xiao_p
你先入门再来发言,菜鸟

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-05-30 15:31 编辑过
成果网帮您增加网站收入


相关链接: