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

Posted

技术标签:

【中文标题】为啥 Visual Studio 2010 使用源代码发布网站?【英文标题】:Why Visual Studio 2010 publish website with source code?为什么 Visual Studio 2010 使用源代码发布网站? 【发布时间】:2011-12-26 03:49:40 【问题描述】:

我正在使用带有新网站发布对话框的 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 会带来这个功能来迷惑我?

【问题讨论】:

是网络应用还是网站?您是只看到 .as?x 文件还是也看到 .cs 文件? @SLaks 我确定是 Web 应用程序而不是网站。我已经解决了,只是因为我在 Package/Publish web 配置中设置了 Include all project files 嗨@RocHo 我也有同样的问题,但问题是我在 VS2013 专业版中发布网站而不是 web 应用程序。当我发布它时,它还会发布源代码,而不是二进制文件/dll。那么,您能否建议我仅在 .aspx/.dll 文件中发布文件的任何解决方案? 【参考方案1】:

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

对于 Web 应用程序,您希望“要部署的项目”具有“仅运行此应用程序所需的文件”,这不会复制源代码文件,因为它们已被编译到 bin 文件夹中的 DLL 中。

请注意,此设置因您当前的构建类型(调试/发布/等)而异,因此请相应地计划...

Ciao!

【讨论】:

嗨@enorl76 请建议我为上述评论提供任何解决方案?帮助表示赞赏!我尝试了您的解决方案,但遗憾的是无法在 VS 2013 专业版中找到此选项。 :( @SHEKHARSHETE 我有 VS 2013,我只是看了看,它是一样的。也许您正在尝试使用不同的项目类型?您必须使用 Web 应用程序项目类型。【参考方案2】:

你需要了解Web Application Projects versus Web Site Projects之间的区别。

要部署 Web 应用程序项目,您需要复制以下程序集 通过将项目编译到 IIS 服务器来创建。相比之下,到 部署一个网站项目,你通常复制项目源文件 到 IIS 服务器。

对于 Web 应用程序项目,您通常在 Visual Studio 或使用计算机上的 ASP.NET 批处理编译器 那不是生产 IIS 服务器。所有代码隐藏类文件和 项目中的独立类文件被编译成单个 程序集,然后将其放入 Web 应用程序项目的 Bin 文件夹。 (.aspx 和 .ascx 文件在 方式类似于为网站项目所做的。)

对于网站项目,您不必手动编译 项目。网站项目通常由以下人员动态编译 ASP.NET(在开发计算机和生产 IIS 上 服务器)。您可以选择批处理编译模式, 通常每个文件夹生成一个程序集,并固定编译 模式,通常为每个页面或用户生成一个程序集 控制。

【讨论】:

【参考方案3】:

在 Visual Studio 2013/2015 中,选择一个选项“发布期间预编译”

【讨论】:

以上是关于为啥 Visual Studio 2010 使用源代码发布网站?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 2010 不“解包”系统变量?

为啥 stoi 函数在 Visual Studio 2010 中可用

SSIS 包在 Visual Studio 2010 中卡住了“验证 Excel 源”

为啥 Visual Studio 2010 (msbuild?) 构建速度不快?

为啥 Visual Studio 2010 (Intellisense) 会停止生成接口指针?

为啥我的visual stdio 2010连错误程序也能编译成功。。。。