5

我在 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>

但这还不够,所有这些文件夹(包括App_DataVisual Studio 创建项目时存在的文件夹)都不会复制到包中。即使它们是空的,我能否以某种方式强制 MSBuild 复制它们?

4

2 回答 2

4

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

我无法专门针对 VS2012 回答,但这是在 VS2010 中执行此操作的方法:

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

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

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


  <PropertyGroup>
    <PostBuildEvent>copy /Y "$(TargetDir)\*.*" "$(ProjectDir)\..\..\..\net40"</PostBuildEvent>
  </PropertyGroup>
于 2012-10-24T22:25:38.110 回答
3

不要编辑项目文件。我可以看到您在 XSockets 上使用的是旧版本,对吗?

照 Brenda 说的做,不要介意项目文件。看附上的图片... 构建事件

不是 100% 确定您正在寻找的是这个,但是......它显示了构建前和构建后的事件

问候 Uffe,XSockets 团队

于 2012-10-31T19:53:00.020 回答