使用aspnet_compiler.exe预编译ASP.NET项目有什么好处?
此外,编译后的项目是否有可能在部署到远程服务器后出错?团队提出了一个问题,即如果编译项目的机器和将部署项目的服务器将具有不同的设置,则项目将不会运行或错误运行。有人遇到过这种情况吗?
答案 0 :(得分:2)
我认为有两个主要原因:
其中第一个允许在开发过程中检测到更多错误(例如属性名称中的拼写错误),而不是获得死亡的黄色屏幕。如果相关代码是错误路径,则很难确保测试覆盖率,因此事情可能会漏掉。
这不能保证生产中不会出错。很明显,编译时不会发现逻辑错误,也不会错过错误处理(仅列出两大类错误)。
此外,它不会防止由于缺少装配而导致缺少参考问题(存在于开发机器上但未部署到生产中)。因此,良好的做法仍然是有一个临时环境(这也可以用于验收测试),开发人员和测试人员将其视为生产 - 只有访问才能部署更正版本(无需直接修复),因此修复所有从开发(和源代码管理)开始。
答案 1 :(得分:2)
如果您必须部署到不受信任的环境(例如共享主机),另一个优点是保护您的源代码,因为您只需要部署二进制文件,这使得第三方更难以进行任何逆向工程而不是全部那里你的.cs文件。
执行编译时,您不会看到任何跨平台问题。查看this回答,其中解释了.NET如何在不同的体系结构上运行。