VS05发布网站遇到的几个问题【转】

转自:•牛奶糖的生活♡ 百度空间,原文地址:http://hi.baidu.com/%D6%D0%B9%FA%D7%BF%C3%E2%B7%D1%C8%CB%B2%C5%CD%F8/blog/item/d356c9d38fb27cd4a8ec9a5e.html

项目做完需要把整个项目传到空间中。由于VS05改变了以往03的发布“习惯”。本人在实践中也遇到了不少问题,先把问题分析出来供以后学习参考。

我想发布网站最需要注意的地方就是生成DLL文件了,并且要像VS03中那样方便以后维护。VS05生成DLL有三种方法;

一、使用VS自带的“发布网站”功能。

第一步:
[img]http://dl.iteye.com/upload/picture/pic/59823/0093b94e-6043-3cb5-8a3e-c59bc57429e2.jpg[/img]
第二步:[img]http://dl.iteye.com/upload/picture/pic/59819/742a1530-1235-3348-9e0c-638543e2d205.jpg[/img]

剩下的就是把这些文件全部传到空间中即可。这里需要注意的是发布网站的时候需要把项目中的数据库停用,这样才可以发布。使用这种方法在以后维护网站的时候不是非常方便。系统会在BIN文件夹下随机生成很多DLL文件,如果用过VS03的朋友就会知道,以后维护起来非常费事。那就接着往下看吧,另一种发布的方法。

二、利用微软出的插件WebDeployment生成单一程序集(一个DLL文件)

没有插件的朋友自己到网上找吧,这里就不提供下载地址了。在装好插件之后VS05菜单的生成中会多了一个选项Add Web Deployment Projiect或者直接在项目中鼠标点击右键也会看到 如下面两幅图
[img]http://dl.iteye.com/upload/picture/pic/59831/69aac9e6-ff28-3ab7-99b6-8723c1d69e66.jpg[/img][img]http://dl.iteye.com/upload/picture/pic/59821/98e101cc-d073-37cb-9e0e-04def8ecfc54.jpg[/img]


第一步:点击Add Web Deployment Project选项出现如图所示
[img]http://dl.iteye.com/upload/picture/pic/59829/02cb65f0-5b72-3130-a8be-8cbb5777d82a.jpg[/img]

Name是生成程序集(DLL文件)的名称;Location是发布位置(这里要注意目录不能选择当前项目目录),选好之后点击OK,这时您的项目中就会多了一个以刚才Name命名的解决方案jinwb,如图:
[img]http://dl.iteye.com/upload/picture/pic/59825/8aba2ea2-a01c-3594-a4be-1f4cef2b8c01.jpg[/img]

第二步:鼠标右击该解决方案,选择【属性页】 弹出如图选项
[img]http://dl.iteye.com/upload/picture/pic/59815/c5eaf5ed-f98f-3824-901f-9d83d6f9cc4a.jpg[/img]

找到OutPut Assemblies 选项卡;选择Merge all outputs to a single assembly 并勾选下面的 Treat as library component(remove the App_Code.compiled file) 或者选择Merge all pages and control outputs to a single assembly 为程序集起好名,其他不做修改,点击确定

Output Assemblies中的四大选项:
1. Merge all outputs to a single assembly-所有输出都编译成一个程序集(参数:程序集名称)
 1.1 Treat as library component (remove the App_Code.compiled file)-App_Code视为类库(删除App_Code.compiled文件)

2. Merge each individual folder output to its own assembly-WEB项目中单独的目录会编译到一个程序集中(参数:程序集前缀)

3. Merge all pages and control outputs to a single assembly-所有页面控件编译到一个程序集中(参数:程序集名称)

4. Create a separate assembly for each page and control output-为每一个页面和控件创建程序集Signing使用 key文件建立强命名空间的程序集

第三步:点击新增项目的生成。如图:
[img]http://dl.iteye.com/upload/picture/pic/59827/2d21b63b-65e2-360b-9ab1-94432c14427f.jpg[/img]

余下的工作就是等待系统生成了。生成好之后你会在先前选择发布位置中看到含有自己命名的程序集(一个DLL文件)的项目。其中的CS文件已经没有了。这时你可以吧这些文件传到空间中了。像VS03一样,以后维护网站的时候重复上述步骤,只传递DLL文件即可。(注意一下:生成网站的时候如果项目中存在数据库的话,要停止数据库服务才能发布成功)

接下来说说用这种方法遇到的几个问题;

再发布网站之后我想在本机进行测试一下,我先删除了生成之前的项目。然后把生成后的文件拖到了删除之后项目的文件夹,打开VS05 提示如图:
[img]http://dl.iteye.com/upload/picture/pic/59817/90655cec-7289-37ed-947d-494408ad901c.jpg[/img]

这里点击“是”就行了,原因是你所打开的项目已经编译过了。设置好起始页之后F5运行提示:已预编译此应用程序,解决方法是把文件中的 PrecompiledApp.config删除即可。再次运行又出现错误。提示错Cannot find any assemblies that can be merged in the application bin folder. 解决方法是删除发布网站时候生成的项目即可解决

三、升级VS05到SP1 新建项目中会有Web Application Project 这种是微软后增加的网站开发模式。与Web Site Project不同,这种模式也可以生成单一程序集。这里就不在说明了。大家可以试一下。不过具网上有人说这种模式不是非常好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值