动态添加文件到visual studio部署项目

时间:2009-07-21 15:50:00

标签: copy directory compile-time deployment-project

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

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

我尝试使用PreBuildEvent复制文件:

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

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

提前致谢。

格雷姆

5 个答案:

答案 0 :(得分:2)

走这条路。

  • 创建了一个新项目(删除了默认源文件Class1)
  • 添加了项目所需的文件/文件夹。
  • 在安装程序中添加项目作为项目输出,选择选项内容文件。

这消除了必须按照之前的建议压缩/解压缩文件的复杂性。

答案 1 :(得分:0)

尝试

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

/ e确保树结构实现(如果你想绕过空文件夹,则使用/ s)
/ c继续出错(让构建过程完成)
/如果不存在,则需要创建目标文件夹
/ y在先前存在的文件的情况下假设为“是”

[optionnal]
/ f如果你想看到副本的整个路径
/ r如果你想覆盖以前复制的只读文件

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

如果您从数据包中删除了一些文件并重建而没有清空目标文件夹,请注意剩余的文件。

祝你好运。

答案 2 :(得分:0)

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

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

它简单而稳定。

答案 3 :(得分:0)

您的错误可能是因为您的路径中包含空格而您没有引号中的路径。

ex copy“$(ProjectDir).. \ Data *。*”“$(TargetDir)Data \”

我需要做类似的事情。想一个自定义的行动...

答案 4 :(得分:0)

我找到了一个不同的解决方法。我在我的解决方案中添加了一个Web项目,该项目指向我想要包含在部署项目中的数据目录。 Web项目会自动获取数据目录中的所有新文件,您可以参考部署项目中的项目内容。