我正在使用一个部署项目来部署我的ASP.net Web应用程序。
当我构建部署项目时,将重新创建所有.compiled文件。
我需要将它们通过FTP传输到生产Web服务器吗?
如果做些小改动,是否需要再次复制所有网站?
根据我自己的研究,必须将.compiled文件复制到生产服务器,但不必每次都复制
来自Rick Strahl的优秀博客:
The output from the merge utilitity
can combine all markup and CodeBeside
code into a single assembly, but you
will still end up with the .compiled
files which are required for ASP.NET
to associate the page requests with a
specific class contained in the
assembly. However, because the file
names generated are fixed you don’t
need to update these files unless you
add or remove pages. In effect this
means that in most situations you can
simply update the single assembly to
update your Web.
Source
您可以使用带有-r选项的aspnet_merge工具来摆脱.compiled文件。
Removes the .compiled files for the main code assembly (code in the App_Code folder). Do not use this option if your application contains an explicit type reference to the main code assembly.
.compiled文件没有什么特别的:它只是末尾带有.compiled扩展名的实际文件,因此,如果您不小心双击它,则不会发生任何事情。
但是,如果您看到的是.compiled文件,那么您发布的应用程序应以期望正式安装的方式发布-仅将内容复制到生产环境中是不够的。 您也必须运行安装程序。 如果您知道该应用已经部署,则似乎没有必要。