Visual studio 2010 在VS2010 web项目中将空目录发布到web应用程序

Visual studio 2010 在VS2010 web项目中将空目录发布到web应用程序,visual-studio-2010,directory,publish,webproject,Visual Studio 2010,Directory,Publish,Webproject,通常,我需要发布一个保存目录树的web项目,即使目录是空的,例如,保存上传文件的目录。 如果使用VS2010 publish命令发布我的应用程序,则不会在web服务器的远程文件系统上创建空目录 有没有办法强制VS在目标目录上创建某些文件夹(尽管是空的)? 谢谢 不,这是不可能的,恐怕我们也有同样的问题。如果希望预编译工具生成这些空文件夹,则需要在每个空目录中创建一个placeholder.txt文件。如果失败,您可以创建一个命令行应用程序,该应用程序将在生成后事件中创建文件夹(但仅当您使用的是w

通常,我需要发布一个保存目录树的web项目,即使目录是空的,例如,保存上传文件的目录。 如果使用VS2010 publish命令发布我的应用程序,则不会在web服务器的远程文件系统上创建空目录

有没有办法强制VS在目标目录上创建某些文件夹(尽管是空的)?
谢谢

不,这是不可能的,恐怕我们也有同样的问题。如果希望预编译工具生成这些空文件夹,则需要在每个空目录中创建一个placeholder.txt文件。如果失败,您可以创建一个命令行应用程序,该应用程序将在生成后事件中创建文件夹(但仅当您使用的是web应用程序项目而不是web站点项目时)


希望这能有所帮助。

微软收到了一份关于此问题的错误报告,他们说不会修复它。

太糟糕了。因为它以前在VisualStudio2008中工作


请注意,没有必要实际部署虚拟文件。它只需要作为项目的一部分存在于构建环境中。

我知道这个问题提到了
Visual Studio 2010
,但我来到这里也是为了寻找同样的问题

我正在使用
VisualStudio2012
并找到了一种很好/优雅的方法来克服这种恼人的情况。我认为它在
vs2010
中也能工作,并且比在空文件夹中添加虚拟空文件要好

使用
VS 2012
创建发布配置文件时,它将在
Properties\PublishProfiles
文件夹中生成
MyPublishProfile.pubxml
文件(
myproject\PublishProfiles
for VB)。这些是
MSBuild
文件,可以编辑它们以自定义发布过程。在本例中,我们可以在发布实际发生之前,将目标注入发布过程,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>CreateEmptyFolders
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEmptyFolders">
    <Message Text="Adding empty folder to hold Files" />
    <MakeDir Directories="$(_MSDeployDirPath_FullPath)\Files\MyEmptyFolder"/>
  </Target>
</Project>


在空文件夹中添加一个Default.aspx文件。您可以将其保留为空,然后它将在预编译版本中创建文件夹。

这一个对我有用:

编辑visual studio生成的pubxml文件,如Leniel Macaferi所述,然后添加以下内容: VisualStudio已生成一个属性,如

<publishUrl>f:\publish_web</publishUrl>
f:\publish\u web

<PropertyGroup>    

节,所以我使用它如下: 添加到第节:

 <PipelineDependsOn>
      CustomBeforePublish;
      $(PipelineDependsOn);
    </PipelineDependsOn>  

出版前定制;
$(管道依赖);
并补充说:

<Target Name="CustomBeforePublish">
    <Message Text="CustomBeforePublish task:"/>
    <MakeDir Directories="$(publishUrl)\MyFolder\MyFolder2"/>
  </Target>


看起来这个答案上的注释是错误的。将生成操作设置为“无”会阻止在IIS服务器上创建文件夹。这是一个多么烦人的错误!“无”或“编译”都没有帮助。。。因此,现在我的文件名为“ReadMe.txt”,其内容是“这是一个文件夹,诸如此类”(使用“content”编译模式)。注释是正确的。将构建操作设置为“Content”,将复制到输出目录设置为“donotcopy”太糟糕了,连接链接现在似乎已失效。嗯,对我来说不起作用。但我觉得我错过了什么。我已将您的代码粘贴到现有发布配置文件的底部,但什么都没有。在VS 2013中为我工作。澄清:将
添加到与
相同的
中,并在
之后添加
。。。很奇怪的问题。。还是谢谢:)