使用aspnet_compiler.exe预编译ASP.NET项目的优点是什么?使用aspnet_compiler.exe预编译ASP.NET项目的优点是什么?
另外,编译后的项目在部署到远程服务器后是否有错误?团队提出的一个问题是,如果项目编译的机器和部署项目的服务器将有不同的设置,项目将不会运行或错误运行。有没有人遇到过这种情况?
使用aspnet_compiler.exe预编译ASP.NET项目的优点是什么?使用aspnet_compiler.exe预编译ASP.NET项目的优点是什么?
另外,编译后的项目在部署到远程服务器后是否有错误?团队提出的一个问题是,如果项目编译的机器和部署项目的服务器将有不同的设置,项目将不会运行或错误运行。有没有人遇到过这种情况?
我看到两个主要的原因:
第一个允许在开发过程中检测到更多错误(例如属性名称中的拼写错误),而不是获取死亡的黄色屏幕。如果有问题的代码是错误路径,那么确保测试覆盖率可能很难确保测试覆盖率可以透过。
这不能保证在生产中不会有错误。在编译时显然不会出现逻辑错误,也不会错过错误处理(仅列出两大类错误)。
此外,它不会防止由于缺少装配(在开发计算机上存在但未部署到生产中)而缺少参考问题。因此,良好的实践仍然需要一个临时环境(这也可以用于验收测试),开发人员和测试人员将其视为生产 - 只有访问才能部署经过纠正的版本(无需直接修复),因此修复了所有问题从开发(和源代码控制)开始。
另一个优势是如果您必须部署到不受信任的环境(例如共享主机),则保护您的源代码,因为您只部署二进制文件,这使得第三方难以进行任何反向工程,在那里你所有的.cs文件。
仅执行编译就不会看到任何跨平台问题。请查看this答案,它解释了.NET如何在不同的体系结构上运行。
明白了你的意思,非常感谢。但是,在我的第二个问题上,如果在我的本地计算机中编译它并将其部署到服务器后,有可能会出现错误?可能是因为我的机器和服务器上的设置与cpu的数量/类型有所不同? – 2010-02-03 10:57:21
@mcxiand:请参阅解决第二个问题的最后两段。 – Richard 2010-02-03 11:55:05
我看到它,但它没有解决这个问题。我所说的“机器设置”不是逻辑错误或缺少装配。 – 2010-02-03 12:10:44