Visual studio VS PostBuild事件-复制文件(如果存在)
是否有一种简单的方法可以在Visual Studio项目的生成后事件中复制文件,但仅限于该文件存在时?(即,如果文件不存在,则不要使构建失败) 我用xcopy尝试了一些选项。但我觉得自己太笨了——我似乎无法理解xcopy可能需要哪些开关。使用“IF”命令:Visual studio VS PostBuild事件-复制文件(如果存在),visual-studio,post-build-event,Visual Studio,Post Build Event,是否有一种简单的方法可以在Visual Studio项目的生成后事件中复制文件,但仅限于该文件存在时?(即,如果文件不存在,则不要使构建失败) 我用xcopy尝试了一些选项。但我觉得自己太笨了——我似乎无法理解xcopy可能需要哪些开关。使用“IF”命令: 也没有IF EXIST,但使用XCOPY的/U选项 xcopy source_file_name dest_folder /u /y 如果您更喜欢在“属性”面板中使用“复制到输出目录”(在项目文件上单击鼠标右键并选择“属性”时由Visual
也没有IF EXIST,但使用XCOPY的/U选项
xcopy source_file_name dest_folder /u /y
如果您更喜欢在“属性”面板中使用“复制到输出目录”(在项目文件上单击鼠标右键并选择“属性”时由Visual Studio提供),则可以通过少量文本编辑来实现。这将适用于使用MSBuild的所有Visual Studio版本(即Visual Studio 2010及以后的版本)
首先,为“复制到输出目录”选择一个合适的值,例如“始终复制”或“如果更新则复制”。保存对项目的更改(例如,“文件”菜单中的“全部保存”)
然后,在文本编辑器中编辑项目文件,并在新添加的
元素的开始标记内添加一个属性,如Condition=“Exists('$(MSBuildProjectDirectory)\FILENAME')”
,其中FILENAME
是要复制的文件的路径(即,在父元素中引用)
GUI将来无法正确编辑此设置(即,如果文件不存在,它将显示“请勿复制”作为值),但至少它可以工作。该文件是作为Visual Studio项目的一部分包含的还是某些外部文件?它没有添加到项目中,但它与项目位于同一文件夹中。出于某种原因,如果文件不存在,我无法使/u正常工作-它退出时出现错误“4”。这是我的错。我误解了。我在想,只有当源文件存在于目标文件中时,才需要复制它/U用于此目的,而不是检查源文件是否存在。
xcopy source_file_name dest_folder /u /y