Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用aspnet_compiler.exe预编译ASP.NET项目有什么好处?_Asp.net - Fatal编程技术网

使用aspnet_compiler.exe预编译ASP.NET项目有什么好处?

使用aspnet_compiler.exe预编译ASP.NET项目有什么好处?,asp.net,Asp.net,使用aspnet_compiler.exe预编译ASP.NET项目有什么好处 另外,编译后的项目在部署到远程服务器后是否有可能出现错误?团队提出的一个问题是,如果编译项目的机器和部署项目的服务器具有不同的设置,则项目不会运行或错误运行。有人遇到过这种情况吗?我认为有两个主要原因: 编译时错误检查 避免在第一页上编译的开销 第一种方法允许在开发过程中检测到更多的错误(例如,属性名称的输入错误),而不是出现死亡的黄屏。如果所讨论的代码是一条错误路径,那么很难确保测试覆盖率,这样事情就可以顺利通过 这

使用aspnet_compiler.exe预编译ASP.NET项目有什么好处


另外,编译后的项目在部署到远程服务器后是否有可能出现错误?团队提出的一个问题是,如果编译项目的机器和部署项目的服务器具有不同的设置,则项目不会运行或错误运行。有人遇到过这种情况吗?

我认为有两个主要原因:

  • 编译时错误检查
  • 避免在第一页上编译的开销
  • 第一种方法允许在开发过程中检测到更多的错误(例如,属性名称的输入错误),而不是出现死亡的黄屏。如果所讨论的代码是一条错误路径,那么很难确保测试覆盖率,这样事情就可以顺利通过

    这不能保证在生产中不会出现错误。显然,逻辑错误不会在编译时被发现,丢失的错误处理也不会被发现(仅列举两大类错误)


    此外,它也无法防止由于缺少程序集(存在于开发机器上,但未部署到生产环境中)而导致的缺少引用问题。因此,良好的实践仍然是有一个登台环境(也可以用于验收测试),开发人员和测试人员将其视为生产环境——唯一的访问权限是部署一个正确的版本(无直接修复),因此所有修复都从开发(和源代码控制)开始.

    另一个优点是,如果您必须部署到不受信任的环境(例如共享主机),则可以保护您的源代码,因为您只部署二进制文件,这使得第三方执行任何反向工程比您将所有.cs文件都放在那里要困难得多


    仅通过执行编译,您不会看到任何跨平台问题。请查看解释.NET如何在不同体系结构上运行的答案。

    我明白您的意思,非常感谢。但是,关于我的第二个问题,在我的本地机器上编译并部署到服务器后,站点是否有可能出现错误?可能是因为我的机器和服务器上的设置不同,比如cpu的数量/类型,可能是吗?@mcxind:请看最后两段,这两段回答了你的第二个问题。我看到了,但它没有回答这个问题。我说的是“机器设置”,而不是逻辑错误或缺少程序集。@mcxind:是的,配置差异可能会导致问题(我认为这很明显:它离缺少程序集不远)。