ASP.NET:发布网站未发布资源文件夹

14
我正在使用Visual Studio 2015开发一个ASP.NET网站。当我右键单击并发布网站时,网站会正确发布,只有我的资源文件夹被留下了。在Visual Studio中的解决方案资源管理器中是这样的:enter image description here但是,在我发布它之后,通过FileZilla访问Azure时出现以下文件:enter image description here如何告诉Visual Studio将资源文件夹与其余的网站一起发布?

你是在使用asp.net网站还是asp.net项目? - Shaun Luttin
你的发布目标是微软Azure Web应用程序吗? - Shaun Luttin
你使用的是哪种发布方法?Web Deploy吗? - Shaun Luttin
资源文件夹中有什么? - Shaun Luttin
4个回答

28

可能的答案

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

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

Build Action                      Content
Copy to Output Directory          Do not copy

对于想要发布为网站内容的所有文件,请执行此操作。

Web服务器内容的文件属性

Web服务器内容的文件属性

文件属性备注

生成操作(Build Action)属性指示了在执行构建时Visual Studio会对文件进行何种处理。生成操作可以具有以下几个值:

  • None. 不符合您的需求。 文件不包含在项目输出组中,也不在构建过程中进行编译。例如,文本文件可以包含文档,如Readme文件,您不希望将其发布到Web服务器上。

  • Compile. 不符合您的需求。 文件编译到构建输出中。此设置用于代码文件。换句话说,我们编译文件并将其放入bin目录中。

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

  • Embedded Resource. 不符合您的需求。 此文件作为DLL或可执行文件嵌入到主项目构建输出中。它通常用于资源文件。换句话说,它不仅进入bin目录,还嵌入在.dll.exe文件中。

复制到输出目录(Copy to Output Directory)此属性指定选定的源文件将在何种条件下被复制到输出目录。输出目录通常是bin

另请参阅

Visual Studio项目属性中的各种“生成操作”设置及其作用是什么?

MSDN上的文件属性


完成后别忘了清理解决方案 :) - Alper

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

谢谢你的回答,但是每次都需要这样做吗?有没有办法将其与项目发布绑定起来? - Tarik.J

3

将资源添加到发布中的步骤(Visual Studio 2017):

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

包含在项目中

2)现在您应该在图像属性中看到生成操作:内容

输入图像描述


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

1
将“复制到输出目录”操作会将“资源”文件夹放置到“bin”目录中。 - Shaun Luttin
我必须为一个aspnet core项目标记“复制到输出目录”。仅使用“内容”无法实现。 - int-i

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接