当前位置:首页 » 编程软件 » web工程编译

web工程编译

发布时间: 2025-01-17 04:21:27

❶ VS2005 debug编译和msbuild编译 有什么区别

用aspnet_compiler发布网站在asp.net 2.0模型中,vs2005已经完全脱离了编译而成为了一个彻底的ide.算是一个不小的改动。其中更是取消了有关Web Application的概念,使得习惯了vs2003的人刚开始的时候会有一些摸不着头脑。下面简单说一下我在使用过程中自己总结的,算是一点经验。

新建web工程并且位置是文件系统的时候,vs2005只是帮你建好了一个sln文件,这个东西只是指引msbuild 如何进行编译的,过程是:ide 调用 msbuild ,msbuild解析sln文件,msbuild调用aspnet_compiler.exe进行网站的编译。所以aspnet_compiler.exe只是负责进行网站的编译的。

预编译的概念在 .netframework 1.1 里面就存在了,vs2003中的预编译指的是将页面对应的cs/vb文件与resx文件编译后统一集成到一个dll中放到bin目录下,将aspx文件直接拷贝过去。这样做会留下隐患,因为aspx文件就直接暴露在最后的发行包中,如果完全是codeb-behind模型还好,只能改改界面,如果采用了页面上的来生成页面,源代码就暴露了。针对这些问题,vs2005采用了一种新的模式。
请参看ASP.NET 编译工具 (Aspnet_compiler.exe) 这篇文章了解对各种文件的处理方式。

IDE发布:
vs2005中选择 生成-〉发布网站,在对话框中的操作将映射到aspnet_compiler.exe的参数中,可更新的发布对应 -u,其他选项类似,请参考上面的文章了解。
注意:发布时将忽略web.config中的debug参数,统一生成无调试信息的文件。

手工编译:
简单说来,如果是无更新发布模式编译,appcode下面的class编译成dll放在bin下,页面内容清空位置不变作占位用,同时页面被编译成一个随机名称的dll,增加一个同名.compiled文件到bin目录下,内容大概如下:

<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
里面只是列出了页面上的customcontrol,这里已经完成了和masterfile的映射。这样最大限度的保护了页面的敏感信息,发布过的网站中只能看见一堆文件名了。可更新的发布模式与vs2003类似,页面就直接拷贝过来不予编译了。

讲了一堆原理,下面说一下aspnet_compiler.exe的调用方法,这是我使用的例子

我的开发目录是这样的

Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:

aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:

-v / 指明了iis的虚拟目录
-p .\devroot 表示代码实际位置
.\pubroot 指明了要发布的位置
-f 表示强制改写目标位置
你还可以用-u来进行传统意义上的预编译,-d来插入编译符号。

总的来说,aspnet_compile结合msbuild,提供了一个很好的自动化编译环境,值得研究研究:)

❷ 在用eclipse集成的ant编译web工程的时候,在编译到类文件的时候,就会terminated,但是看不到原因

楼上的,WEB工程 和EXE 有毛关系啊?

楼主,你是ant是在那执行的,应该在控制参有输出啊,
如果是eclipse的话,会出一个蓝色的键接,点击的话,可以到build.xml文件中运行出错的地方。

❸ Eclipse无法自动编译出class文件

有时候用Eclipse或者MyEclipse的时候 发现不能自动编译 web工程下面缺少class文件!

第一个可能是你的自动编译没打开 project >build automatically 第二个要注意你的工程项目上有没有打小红叉知瞎 项目报错时 eclipse是不自动编译的 你可以检查一下是否有些类出错 或是检查一下 构建路径 是否完整 特别是从换机子调试程序时 有些导入jar包的路径不对

通常我们遇到的是第二个 就是有的包在别人机器上是有的 但是到你的机器上相同路径是没有的 删去和那个包有关系的 或者添加新的包路径

eclipse出现不编译工程的现象 怎么刷新classes目录下也是空的

具体都操作了 打开project >build automatically 试后不行 还是不编译

打开project ——> build automatically 另外 clean一下就可能会编译了 结果还不行 (一般先运行project ——>clean… 然后再陪陪执行build automatically)

eclipse默认是选自动编译 即使取消自动编译 手动build工程 也不能编译

出现这种情况一般有以下几种原因 如果项目里引了某个不用的jar包 而那个包又被你删了 就会出现不报错但怎么也编译不出来class文件的情况 可以把所有包都删除 然后一个一个的再引入(需要的) 不要一下子把所有包都引入来 没用的可能会引起不良后果

想删掉某个class文件重新生成 删除class文件后 但classes目录下的文件夹被其它程序打开 比如Total Commander 此时编译也不会通过 在problems下可能会提示 con t delete classes …… 关掉其它程序重新编译即可

还有种情况是remove掉 JRE System Library 重新导入即可编译 但是什么原因导致的还不清楚

项目引用了其他的项目 而被你引用的项目引用芦猛蠢了某个不用的jar包之类

lishixin/Article/program/Java/ky/201311/28954

热点内容
如何帐户密码 发布:2025-01-17 07:56:11 浏览:612
服务器内网ip地址安全 发布:2025-01-17 07:33:18 浏览:186
华为新算法 发布:2025-01-17 07:31:43 浏览:56
希沃如何存储 发布:2025-01-17 07:31:00 浏览:552
算法研读 发布:2025-01-17 07:19:37 浏览:280
我的世界橙子生存之旅服务器ip 发布:2025-01-17 07:19:27 浏览:618
用户名密码错误导致认证失败是什么意思 发布:2025-01-17 06:58:24 浏览:329
安卓空调遥控器在哪里 发布:2025-01-17 06:43:54 浏览:196
安卓版什么做视频软件好用 发布:2025-01-17 06:43:14 浏览:337
神超电脑配置哪个好 发布:2025-01-17 06:35:50 浏览:575