为什么Visual Studio 2010使用源代码发布网站?

时间:2011-12-26 03:49:40

标签: visual-studio-2010 web publish precompile

我正在使用Visual Studio 2010和新的网站发布对话框。我有一个Web应用程序网站。在发布时,理论上它应该将所有代码编译成单个程序集。但是,在DebugRelease中,发布目录后始终包含页面和用户控件的源代码(即使使用未转换的web.config文件Web.Debug.config和Web.Release.Config) 。这非常令人困惑。

但是使用package/publish web项目配置和Generate Deploy package上下文菜单项,Package \ PackageTmp目录是干净的。

  • 为什么Visual Studio不使用此包发布网站?
  • 预编译选项在哪里?
  • Web.config xml转换似乎不起作用,为什么Visual Studio会让这个功能让我迷惑?

3 个答案:

答案 0 :(得分:11)

正确答案是查看打包/发布Web设置(在Web应用程序项目属性中)并查找“要部署的项目”。

enter image description here

对于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)

在visual studio 2013/2015中,选择“发布期间预编译”选项enter image description here