4

我一直在拼命寻找这个问题的答案,我觉得我错过了一些明显的东西。

我需要在编译时将一个包含数据文件的文件夹复制到我的部署项目的 TARGETDIR 中。我可以看到如何添加单个文件(即右键单击文件系统并转到添加-> 文件),但我有一个文件夹,里面装满了不断添加的数据文件。我不希望每次编译时都添加新文件。

我尝试使用 PreBuildEvent 复制文件:

复制 $(ProjectDir)..\Data*.* $(TargetDir)Data\

在我构建时失败,错误代码为 1。我不禁觉得我在这里错过了重点。有什么建议么?

提前致谢。

格雷姆

4

5 回答 5

2

Went to this route.

  • Created a new project (deleted the default source file Class1)
  • Added the files/folders necessary to the project.
  • Added the project as project output in the installer, choosing the option content files.

This removes the complexity of having to zip/unzip the files as suggested earlier.

于 2012-05-17T04:06:26.943 回答
0

尝试

xcopy $(ProjectDir)..\Data\*.* $(TargetDir)Data /e /c /i [/f] [/r] /y

/e 确保实现树结构(如果要绕过空文件夹,请使用 /s)
/c 继续出错(让构建过程完成)
/​​i 如果不存在目标文件夹,则创建目标文件夹是必要的
/y 假设“是”覆盖以前存在的文件

[可选]
/f 如果您想查看复制产生的整个路径
/r 如果您想覆盖以前复制的只读文件

该方法在项目上比在文件上更简单,是的。此外,在文件上,它只复制每次构建时修改/丢失的文件,但会强制您在每次数据包修改时维护​​项目。取决于整个数据大小和数据包的可变性。

如果您从数据包中删除一些文件并在不清空目标文件夹的情况下重新构建,还要注意剩余的文件。

祝你好运。

于 2009-07-24T12:18:43.070 回答
0

我为此找到了不同的解决方法。我在我的解决方案中添加了一个 Web 项目,该项目指向我希望包含在部署项目中的数据目录。Web 项目会自动拾取数据目录中的任何新文件,您可以参考部署项目中的项目内容。

于 2011-04-06T09:17:08.297 回答
0

我通过解决方法解决了这个问题:

  • 添加将整个目录(可以过滤)打包到 ZIP 文件的构建操作。
  • 向部署项目添加对空 ZIP 文件的引用。
  • 向部署项目添加自定义操作以将 ZIP 提取到目标文件夹。

它简单而稳定。

于 2010-04-04T07:55:54.703 回答
0

您的错误可能是因为您的路径中有空格并且您没有引号中的路径。

ex copy "$(ProjectDir)..\Data*.*" "$(TargetDir)Data\"

我需要做类似的事情。正在考虑自定义操作...

于 2011-03-18T19:41:59.763 回答