【发布时间】:2013-05-15 06:44:52
【问题描述】:
我想在我的 bin 中生成一个空文件夹,但是您不能将“始终复制”应用于文件夹,而只能应用于文件夹中的项目。 有没有比在文件夹中创建一个空文件并总是用副本标记它更干净的方法?我正在使用 VS 12,这是用于 WPF C# 应用程序
【问题讨论】:
标签: .net c visual-studio
我想在我的 bin 中生成一个空文件夹,但是您不能将“始终复制”应用于文件夹,而只能应用于文件夹中的项目。 有没有比在文件夹中创建一个空文件并总是用副本标记它更干净的方法?我正在使用 VS 12,这是用于 WPF C# 应用程序
【问题讨论】:
标签: .net c visual-studio
您可以使用构建后事件。
右键单击您的项目文件并选择 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)
【讨论】:
您可以直接编辑.csproj 文件:
<ItemGroup>
<None Remove="MyEmptyFolder\" />
</ItemGroup>
<ItemGroup>
<Folder Include="MyEmptyFolder\">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Folder>
</ItemGroup>
您可以通过在文件夹中添加文件,将其标记为始终复制(它将修改 csproj),然后将其删除并从 csproj 中删除文件名,同时仅保留文件夹,即可轻松获得此解决方案。
【讨论】: