【问题标题】:Visual Studio 2013 Publish issueVisual Studio 2013 发布问题
【发布时间】:2014-03-27 15:37:11
【问题描述】:

我将一个 VS2010 ASP.Net MVC3 项目转换为 VS2013 MVC4。现在,当我发布时,它会将我的项目内容复制到 bin 文件夹中。

我不明白我做了什么让它这样做..我该如何解决它,使它不这样做?

【问题讨论】:

  • 您是如何从 MVC-3 转换到 MVC-4 的?
  • 手动创建的新项目复制了一些东西。
  • 这些文件夹(在项目中)中的内容是否标有“复制到输出”值?通常,内容文件都应设置为不复制。
  • “如果较新则复制”文件夹中的项目。
  • 查看项目的bin文件夹后,不知为何,里面居然有那些文件夹和文件。我删除了它们,现在重新发布。是否可以从 VS2010 项目中复制项目的 publish.xml 文件以与 VS2013 项目一起使用?如果是这样,怎么做?它们看起来完全不同。

标签: asp.net-mvc-4 visual-studio-2013 publish


【解决方案1】:

在构建过程中,您的文件被错误地设置为复制到输出文件夹 (\bin)。确保每个文件上的Copy To Output 设置都设置为Do Not Copy

通常,您不需要将很多内容复制到您的 bin 文件夹中。发布时,所有内容页面(*.aspx、*.html、*.css 等)都将被发布仅在项目中存在的情况下获取。这由将Build Action 设置为Content 确定。 (注意:您可以通过将 Build Action 设置为 None 来排除文件)

对于代码文件,有两种方式。在 Web 应用程序项目(MVC 是)中,大多数代码文件,例如控制器、模型或 WebForms 中的代码隐藏文件,已经编译到您站点的 DLL 中。这些有Build Action = Compile,这意味着它们是预先编译的,不需要包含在发布中。 App_Code 中的文件例外,这些文件部署到您的站点 (Build Action = Content) 并在运行时编译。您也可以选择在发布设置(设置 -> 文件发布选项 -> 发布期间预编译)中预编译您的站点,这将自动处理 App_Code 文件(即您可以将它们保留为Build Action = Content,VS 将编译它们并改为发布输出)。

【讨论】:

  • 那么当我们发布 mvc 应用时,模型和控制器不会包含在预览文件中?
  • @xrx215 正确,它们都被编译成二进制输出。没有理由发布源代码,因为 MVC 不使用 build-on-the-fly 编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多