Visual Studio,在生成时将解决方案复制到文件夹

Visual Studio, Copy Solution to Folder On Build

我正在寻找一种方法来添加额外的构建步骤,这将创建我的整个解决方案的备份副本。我希望它仅在解决方案中的文件或整个解决方案本身不存在于目标文件夹或闪存驱动器目录中时才执行此操作。实现这一目标的最简单方法是什么?最好我只希望在文件被视为 "newer" 时发生这种情况,如果文件自上次备份以来未更改,则避免复制和替换。

您可以使用批处理文件执行此操作

xcopy /D

这将只复制那些源时间比目标时间新的文件。或者 robocopy.

这可以递归地复制整个目录、特定文件夹或特定文件类型。如果您愿意从批处理文件本身(而不是在 visual studio 内)启动您的构建,该批处理文件拥有您需要的一切。否则你可能会发现 Solution-wide pre-build event? useful for setting this up to work through Visual Studio. If you follow that process you should be able to take advantage of the Visual Studio Macros for Build Commands$(SolutionPath).

如果您只需要项目中实际包含的那些文件,则可能需要解析解决方案和项目文件。 .NET 框架提供了一些库来帮助解析解决方案或项目文件 (SolutionParser)。看 Parsing Visual Studio Solution files

这会有些工作量,但是您只构建了项目中包含的那些文件的列表,并与 xcopyrobocopy.

一起使用