【问题标题】:ASP.NET: Publishing Website doesn't publish Resources folderASP.NET:发布网站不发布资源文件夹
【发布时间】:2015-11-28 11:14:21
【问题描述】:

我有一个使用 ASP.NET 开发的网站。我正在使用 Visual Studio 2015。当我右键单击并点击发布网站时,该网站会正确发布,只是我的资源文件夹被遗忘了。下面是解决方案资源管理器在 Visual Studio 中的样子

但是在我在这里发布之后是放在 Azure 上的文件(通过 FileZilla 访问)

如何告诉 Visual Studio 将 Resources 文件夹与网站的其余部分一起发布?

【问题讨论】:

  • 您使用的是asp.net网站还是asp.net项目?
  • 您的发布目标是 Microsoft Azure Web Apps 吗?
  • 您使用的是什么发布方法?网络部署?
  • 资源文件夹中有什么?

标签: c# asp.net azure visual-studio-2015


【解决方案1】:

可能的答案

  1. 打开解决方案资源管理器。
  2. 右键单击资源目录中的文件之一。
  3. 选择属性。

您现在需要设置两个属性。

Build Action                      Content
Copy to Output Directory          Do not copy

对您希望作为内容发布到 Web 服务器的所有文件执行此操作。

Web 服务器内容的文件属性

文件属性说明

Build Action 属性指示 Visual Studio 在执行构建时对文件执行的操作。 Build Action 可以有以下几个值之一:

  • 无。 不是你想要的。该文件不包含在项目输出组中,也没有在构建过程中编译。一个示例是包含文档的文本文件,例如自述文件,您不想将其发布到 Web 服务器。

  • 编译。 不是你想要的。文件被编译到构建输出中。此设置用于代码文件。换句话说,我们编译文件并将其粘贴到bin 目录中。

  • 内容。 这是您想要的。该文件未编译,但包含在内容输出组中。例如,此设置是 .htm 或其他类型的 Web 文件的默认值。 “内容输出组”是 Visual Studio 将发布的文件列表,同时还保持相同的目录结构。

  • 嵌入式资源。 不是您想要的。此文件作为 DLL 或可执行文件嵌入到主项目构建输出中。它通常用于资源文件。换句话说,它不仅进入bin 目录,而且还嵌入在.dll.exe 文件中。

复制到输出目录。此属性指定将所选源文件复制到输出目录的条件。输出目录通常是bin

另见

What are the various "Build action" settings in Visual Studio project properties and what do they do?

File Properties on MSDN

【讨论】:

  • 完成此操作后不要忘记清理解决方案 :)
【解决方案2】:

如果你和我一样使用 Visual Studio 2019,只需右键单击文件夹并选择发布“文件夹名称”

【讨论】:

  • 谢谢你的回答,但你必须每次都这样做吗?有什么办法可以将其与项目发布联系起来吗?
【解决方案3】:

添加要发布的资源的步骤(Visual Studio 2017):

1) 右键单击​​资源文件夹并选择“包含在项目中”

2) 现在您应该会在图像的属性上看到 Build Action: Content

【讨论】:

    【解决方案4】:

    确保资源文件夹的内容具有正确的“复制到输出目录”属性。右键单击要复制的文件,选择属性,然后在高级部分中查看复制到输出目录下的值。通常,默认情况下将其设置为“不复制”,因为大多数内容都打包在 .dll 中。将其更改为“如果较新则复制”以获取文件。它也会带来文件夹结构。

    【讨论】:

    • 复制到输出目录会将Resources文件夹放入bin目录。
    • ^ 我必须为 aspnet 核心项目标记复制到输出目录。 “内容”只是没有这样做。
    猜你喜欢
    • 2012-08-17
    • 2011-05-19
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多