我相信你可以预编译aspx应用程序,但是asp.net文件有一些问题。需要将视图文件夹复制到部署位置,这样说对吗?如果是这样的话,有人知道为什么吗?谢谢
发布于 2009-10-25 22:26:54
简而言之,ASPX (和ASCX)文件不会编译,在部署到IIS时必须随应用程序一起复制。
您可以预编译ASPX应用程序,但是ASP.NET /ASPX文件不包含在混合文件中。在我们的经验中,我们不能使用aspnet_compiler.exe将所有东西打包成二进制文件,所以我们使用csc (通过nant)来编译所有可以编译的东西,然后复制剩下的东西。这包括View文件夹。
如果有帮助,我们的一个nant脚本的相关部分如下所示:
(假设所有依赖项都已复制到站点文件夹(本例中为BuildDir)的bin文件夹)
<csc target="library" output="${BuildDir}/bin/${FinalDeployDllName}.dll" >
<references failonempty="true">
<include name="${BuildDir}/bin/SomeDependency.dll" />
</references>
<sources>
<include name="${BuildDir}/**/*.cs" />
</sources>
</csc>
<copy todir="${target}" overwrite="true">
<fileset basedir="${BuildDir}">
<include name="**/*.???x" />
<include name="**/*.js" />
<include name="**/*.jpg" />
<include name="**/*.jpeg" />
<include name="**/*.gif" />
<include name="**/*.png" />
<include name="**/*.html" />
<include name="**/*.css" />
<include name="**/*.swf" />
<include name="**/*.Master" />
<include name="**/Web.config" />
<include name="images/**/*" />
<include name="bin/**/*" />
<include name="Content/**/*" />
</fileset>
</copy>
<delete>
<fileset>
<include name="${target}/*.build" />
<include name="${target}/*.scc" />
<include name="${target}/*.sln" />
<include name="${target}/*.suo" />
<include name="${target}/build.*" />
<include name="${target}/*.resharper" />
<include name="${target}/*.resharper.user" />
<include name="${target}/bin/*.xml" />
<include name="${target}/bin/*.pdb" />
</fileset>
</delete>这将在{target}处创建一个文件夹,其中包含部署所需的所有文件,并按您认为合适的方式打包。
发布于 2009-10-25 00:28:51
我一直使用Web Deployment Projects预编译web应用程序,并为部署做好准备。关于这一点,Scott Guthrie有blogged。
https://stackoverflow.com/questions/1618350
复制相似问题