如何强制MSBuild复制项目中的空文件夹?

Epi*_*dex 5 msbuild visual-studio

我在Visual Studio 2012中有一个MVC 4项目.其中有一个Logs文件夹,其中只包含四个空子文件夹.我使用的一个库需要这种结构.我将这些文件夹包含在这样的项目中:

<ItemGroup>
    <Folder Include="App_Data\" />
    <Folder Include="XSockets\XSocketServerPlugins\Log\XConnectionInterceptor\" />
    <Folder Include="XSockets\XSocketServerPlugins\Log\XErrorInterceptor\" />
    <Folder Include="XSockets\XSocketServerPlugins\Log\XHandshakeInterceptor\" />
    <Folder Include="XSockets\XSocketServerPlugins\Log\XMessageInterceptor\" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

但这还不够,所有这些文件夹(包括App_Data由Visual Studio创建的项目)都不会复制到包中.我可以以某种方式强制MSBuild复制它们,即使它们是空的吗?

Bre*_*ell 4

添加 PostBuild 步骤来复制文件夹。

我无法具体回答 VS2012,但在 VS2010 中您可以这样做:

  • 右键单击该项目并选择属性
  • 显示构建事件选项卡
  • 将复制命令放入构建后事件命令中

如果单击编辑按钮,弹出对话框将有一个宏按钮,其中列出了可用于避免使用显式路径等的所有可用 VS 变量。

在 VS2010 中,将项目文件修改为如下所示:


  <PropertyGroup>
    <PostBuildEvent>copy /Y "$(TargetDir)\*.*" "$(ProjectDir)\..\..\..\net40"</PostBuildEvent>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)