.net 发布 web应用程序

时间:2021-08-30 05:20:54

第一步:VS2015中发布

https://jingyan.baidu.com/article/7f41ecec58f7eb593c095c69.html

(作用:分离开发代码和测试代码)

第二步:发布到IIS

https://jingyan.baidu.com/article/e75aca857c0c79142edac639.html

(将测试代码发布到IIS)

一、对于前后端不完全分离的情况,例如 VS2015(MVC模式)

1如果你是开发人员:那么你可以直接采用第二步,将开发代码直接发布到IIS,

优点就是方便开发,一生成一刷新就能看到改动内容。

2但到了真正测试环节还是要分离,必要时数据库也要分离。

目的是模拟的跟生产环境一模一样,减少在生产环境部署和运行时出现未知问题。

3、其实你还必须考虑生产环境计算机的:

硬件:内存 、CPU、显卡、显示器、IO读写、网络 等。

软件:操作系统和版本、IIS或apache、 数据库类型和版本、浏览器类型和版本等。

用户:年龄、知识背景、操作习惯 等。

最终:用户满意,软件有用、好用、好看。

这些在开发前就必须考虑好,不然开发好了发现用不了,就完了!

二、对于前后端完全分离的情况,例如 前端采用VSCode(vue+elementUI)开发,服务器端采用VS2015(webapi模式)开发。

1前端开发中   运行后就是热加载模式,保存后改动就生效。

但测试环节,需要执行构建的命令,例如:npm run build  (这一步会压缩代码)

2服务器端开发中   直接生成。

但测试环节,最好发布到测试版本(测试版本一般不包含源代码)。

三、问题

1 VS中MVC模式点击发布后,生成的文件发布到IIS后,浏览器访问网站出现各种错误,如:样式文件缺失。

看来VS自带的发布功能也没做么好用。那就必须手动删减源代码后直接发布。

可以删除代码文件夹如:BLL、DAL、Model、Controller,后来发现一个特别大的文件obj

百度得: obj是编译文件发布到IIS时可以删。

相关文章摘要:  https://bbs.csdn.net/topics/340267613

1.关于bin目录和obj目录
Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。
obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。
2.“是否复制到本地”的设置问题
在添加引用时,.NET会记录添加的引用绝对路径,这些设置保存在“每用户”文件中,(Solution.csproj.user),可以通过记事本打开查看。也可以在:项目属性—>通用属性—>引用路径里面查看。如果设置复制到本地为true,在生成项目时会自动拷贝该DLL到项目生成文件夹中(bin目录),否则不会拷贝。在生成项目时,对所添加的引用的是绝对路径,而在运行时程序集默认只在当前所在的路径下去找。要修改引用的路径,必须通过编程的方法去实现。使用References 对象。
具体参见:
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vbcon/html/vblrfaddmethodreferences.asp
说的都很完善了,我来补充一点。obj这个目录,在开发过程中可能会捣乱,比如你的一个引用的dll,更新了,然后你在vs开发环境里面重新删除后,又重新引用,或者直接更新引用了。因为每次编译时默认都是采用增量编译的原因,所以,这个时候,不论你点多少次编译,你会疑惑,明明是更新引用了,为什么新更新的那些函数和接口不存在,这个时候,你可以手工吧obj目录都删除掉一下,然后重新引用下,就可以正确的看到你更新的那些接口和函数了。这个事实说明,obj在开发过程中,也是会被引用到的,并不只是在编译的时候起作用。

----------------------------