【问题标题】:How to copy empty directory to output in visual studio?如何将空目录复制到 Visual Studio 中的输出?
【发布时间】:2013-05-15 06:44:52
【问题描述】:

我想在我的 bin 中生成一个空文件夹,但是您不能将“始终复制”应用于文件夹,而只能应用于文件夹中的项目。 有没有比在文件夹中创建一个空文件并总是用副本标记它更干净的方法?我正在使用 VS 12,这是用于 WPF C# 应用程序

【问题讨论】:

    标签: .net c visual-studio


    【解决方案1】:

    您可以使用构建后事件。
    右键单击您的项目文件并选择 Properties,然后选择 Build Events

    在构建后事件的空白文本框中,键入命令行以复制/创建目标目录中的文件。

    您还可以调用批处理文件或使用一些包含工作文件夹名称的预定义宏。

    并且您可以定义您的命令应该运行的确切上下文(在成功构建时 ....)

    对不起,我没有时间测试,但我希望能给你一个正确的开始:

    创建一个名为 Test.cmd 的批处理文件,添加这些行并将其保存在解决方案文件夹中

    rem ---------------------
    rem %1 = $(ProjectDir) 
    rem %2 = $(SolutionDir) 
    rem %3 = $(TargetDir) 
    rem ---------------------
    C:
    CD %2
    IF NOT EXIST %3\test1. md %3\test1
    xcopy %1 %3\test1
    

    然后在 Post-Build 事件中调用它

    $(SolutionDir)test.cmd $(ProjectDir) $(SolutionDir) $(TargetDir)
    

    【讨论】:

    • 您是否有一个示例构建后事件,我可以粘贴以在输出目录中创建一个名为“test”的文件夹,无论它是什么? (适用于调试版本和我可能需要的任何其他配置,包括其他平台等)?
    • 抱歉没有看到你更新的答案,谢谢应该让我开始吧:)
    【解决方案2】:

    您可以直接编辑.csproj 文件:

    <ItemGroup>
      <None Remove="MyEmptyFolder\" />
    </ItemGroup>
    
    <ItemGroup>
      <Folder Include="MyEmptyFolder\">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      </Folder>
    </ItemGroup>
    

    您可以通过在文件夹中添加文件,将其标记为始终复制(它将修改 csproj),然后将其删除并从 csproj 中删除文件名,同时仅保留文件夹,即可轻松获得此解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多