我正在使用Visual Studio 2010和新的网站发布对话框。我有一个Web应用程序网站。在发布时,理论上它应该将所有代码编译成单个程序集。但是,在Debug
和Release
中,发布目录后始终包含页面和用户控件的源代码(即使使用未转换的web.config文件Web.Debug.config和Web.Release.Config) 。这非常令人困惑。
但是使用package/publish web
项目配置和Generate Deploy package
上下文菜单项,Package \ PackageTmp目录是干净的。
答案 0 :(得分:11)
正确答案是查看打包/发布Web设置(在Web应用程序项目属性中)并查找“要部署的项目”。
对于Web应用程序,您希望“要部署的项目”具有“仅运行此应用程序所需的文件”,这不会复制源代码文件,因为它们已被编译到bin文件夹中的DLL中。
请注意,此设置因您当前的构建类型(调试/发布/等)而异,因此请相应地进行规划......
侨!
答案 1 :(得分:2)
您需要了解Web Application Projects versus Web Site Projects之间的差异。
要部署Web应用程序项目,请复制该程序集 通过将项目编译到IIS服务器来创建。相比之下 部署网站项目时,通常会复制项目源文件 到IIS服务器。
对于Web应用程序项目,通常在中构建项目 Visual Studio或在计算机上使用ASP.NET批处理编译器 那不是生产IIS服务器。所有代码隐藏类文件和 项目中的独立类文件被编译为单个 程序集,然后放入Web应用程序项目的Bin中 夹。 (.aspx和.ascx文件是动态编译的 类似于网站项目的方式。)
对于网站项目,您不必手动编译 项目。网站项目通常由动态编译 ASP.NET(在开发计算机和生产IIS上 服务器)。您可以在批量编译模式之间进行选择 通常每个文件夹生成一个程序集,并修复编译 模式,通常为每个页面或用户生成一个程序集 控制。
答案 2 :(得分:0)