当我将ASP.NET项目部署到包含许多ASCX文件的服务器时,第一页加载可能需要一段时间,可能是因为正在编译ASCX文件。虽然只编译了页面上实际的那些,但部署过程的一部分是导航到网站上的一堆页面。导航完所有页面后,网站运行顺畅。
我希望ASP.NET在部署时立即编译所有这些ASCX文件,以删除这个草率部署步骤。
实现这一目标的最佳方法是什么?
答案 0 :(得分:4)
听起来像是在寻找ASP.NET Precompilation:
您可以在网站项目可用之前对其进行预编译 用户。这提供了许多优点,包括更快的初始化 响应时间,错误检查,源代码保护和高效 部署。这在那里的大型场所尤为重要 经常更改网页和代码文件。
您还可以使用Web应用程序项目编译项目 模型。在该模型中,所有代码文件(独立,代码隐藏和 项目中的类文件)被编译成单个程序集 存储在Bin目录中。因为编译创建了一个 程序集,您可以指定属性,例如程序集名称和 版。您还可以指定输出程序集的位置 你不希望它在Bin目录中。
答案 1 :(得分:2)
如果您将ASP.net网站转换为“Web应用程序”,则可以部署已编译的版本。右键单击解决方案资源管理器中的网站,然后单击“转换为Web应用程序”
答案 2 :(得分:0)
您可以在Web解决方案上运行msbuild,它将编译您的代码,然后您可以在编译的.dll中部署标记。
执行此操作的示例NAnt脚本:
<target name="determineMsbuildPath">
<readregistry property="net.bin" key="SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\MSBuildToolsPath"/>
</target>
<target name="msbuild" depends="determineMsbuildPath>
<exec basedir="${net.bin}\" program="MSBuild.exe">
<arg value="${solution}"/> <!-- put the path to your web solution here -->
<arg value="/p:OutputPath=${workdir}"/>
</exec>
</target>