在 vs19 中使用 post 构建执行自动复制目录的每个文件

Copy every files of a dir automatically using post build executions in vs19

我想使用参数“生成一个文件”来构建我的游戏(我想,我的 vs 是法语的)但这不会复制我的内容/文件夹

我搜索了一下,在 .csproj 中发现了 PostBuild 执行问题。所以我尝试了一些东西,它确实有效。

这是制作的东西

xcopy "$(ProjectDir)Content" "$(ProjectDir)bin\Release\netcoreapp3.1\publish\Latest\win86\Content" /s /y

但这根本不是自动化的。我有一个固定的输出“$(ProjectDir)bin\Release\netcoreapp3.1\publish\Latest\win86\Content”,所以如果我想发布到 mac 和 linux,文件不会被复制到正确的位置.

那么有没有一个环境变量携带publish的输出目录分别有:

$(ProjectDir)bin\Release\netcoreapp3.1\publish\Latest\win86\    for win-x86
$(ProjectDir)bin\Release\netcoreapp3.1\publish\Latest\osx64\    for osx-x64
$(ProjectDir)bin\Release\netcoreapp3.1\publish\Latest\lin64\    for linux-x64

这些文件夹是手工制作的,并且是手工植根的,所以我只需要一个像 'OutputDir' 之类的变量。

所以我可以这样使用它

xcopy "$(ProjectDir)Content" "$(OutputDir)Content" /s /y

我无法在 Microsoft 文档中找到答案。

如有任何帮助,我将不胜感激

这是在项目文件定义中使用的 MSDN List of common macros for MSBuild commands

在里面你会发现:

$(TargetDir)

The directory of the primary output file for the build (defined as drive + path); includes the trailing backslash ''.

另请注意,在 Visual Studio 中项目的属性视图中,在您可以编辑 Post 构建脚本的位置旁边,您可以单击“宏 >>”按钮以查看宏列表及其解析的值。