在Windows 7上运行的VS2010中,在postbuild事件中复制并始终将文件覆盖到目标目录的最佳方法是什么。
目前我正在使用
robocopy $(SolutionDir) $(TargetDir) "Morning Report Template.xlsm"
我也尝试过使用Xcopy(使用/ Y),甚至只使用普通副本。但我还没有让它正常工作。要么我得到构建错误,如“命令”robocopy C:\ Working \ Projects \ SAFEXQueryForm \ C:\ Working \ Projects \ SAFEXQueryForm \ SAFEXQueryForm \ bin \ Release \“Morning Report Template.xlsm”“退出代码1”。或者它只是不复制。
我每次都需要它来复制和覆盖,没有构建错误,我也想更改我知道Robocopy不能做的文件名。
我做错了什么?什么是最好的方法呢?
答案 0 :(得分:4)
编辑2015/11/23
这个答案提供了一个更好的方法:https://stackoverflow.com/a/4596552/1011724。您可以将文件添加到项目中,然后更改"复制到输出目录"该文件的属性。
原始回答
我仍然不知道我的原始语法有什么问题,或者如何说服VS Robocopy
的成功退出代码为1但这就是我现在所拥有的并且它似乎工作,唯一的区别是我改变了目录结构,但这不重要(我担心我不知道我是否在过渡期间进行了其他更改,这是很久以前的事了)
xcopy "$(SolutionDir)\Additional Files\Morning Report Template.xlsm" "$(TargetDir)" /Y
我还将Run post build事件下拉列表设置为On successful build
答案 1 :(得分:1)
您需要使用自定义构建操作来实现此目的。有关详细信息,请参阅http://msdn.microsoft.com/en-US/library/hefydhhy(v=vs.80).aspx,但这是我尝试的内容。
我将输入文件添加到项目中。然后选择文件并显示属性页面(右键单击 - >属性)。在“常规”页面上,确保“项目类型”为“自定义构建工具”。
您可能需要关闭并重新打开属性对话框,但是将“项目类型”更改为“自定义构建工具”后,属性对话框中应该有一个“自定义构建工具”页面。然后,您可以填写命令行。确保使用我们的自定义构建步骤生成的文件名称填写“输出”部分。
然后,您应该发现项目在发现输入文件的日期大于输出文件时构建并运行自定义构建步骤,我相信这是您要实现的目标。